hasOne(User::class, 'id', 'user_id'); } public function client(){ return $this->hasOne(User::class, 'id', 'user_id'); } public function paymentMethod(){ return $this->hasOne(PaymentMethod::class, 'id', 'payment_method_id'); } public function financialTransactions(){ return $this->hasMany(FinancialTransaction::class, 'order_id', 'id'); } public function finalFinancialTransaction(){ return FinancialTransaction::where('order_id', $this->id)->orderBy('created_at', 'DESC')->first(); } public function orderNumber() { if ($this->iid) return $this->iid; return getFirstSectionUID($this->uid); } public function total(){ $detail = json_decode($this->detail_json); $selectedOptions = json_decode(@$detail->selected_options); if(!$selectedOptions) return 0; return floatval($selectedOptions->order_total); } public function selectedOptions(){ $detail = json_decode($this->detail_json); $selectedOptions = json_decode(@$detail->selected_options); return $selectedOptions; } public function createdByUser(){ return $this->hasOne(User::class, 'id', 'created_by_user_id'); } }