belongsTo('App\Models\Account'); } public function user() { return $this->belongsTo('App\Models\User'); } public function vendor() { return $this->belongsTo('App\Models\Vendor')->withTrashed(); } public function client() { return $this->belongsTo('App\Models\Client')->withTrashed(); } public function invoice() { return $this->belongsTo('App\Models\Invoice')->withTrashed(); } public function getName() { if($this->expense_number) return $this->expense_number; return $this->public_id; } public function getDisplayName() { return $this->getName(); } public function getRoute() { return "/expenses/{$this->public_id}"; } public function getEntityType() { return ENTITY_EXPENSE; } public function isExchanged() { return $this->invoice_currency_id != $this->expense_currency_id; } } Expense::creating(function ($expense) { $expense->setNullValues(); }); Expense::created(function ($expense) { event(new ExpenseWasCreated($expense)); }); Expense::updating(function ($expense) { $expense->setNullValues(); }); Expense::updated(function ($expense) { event(new ExpenseWasUpdated($expense)); }); Expense::deleting(function ($expense) { $expense->setNullValues(); }); Expense::deleted(function ($expense) { event(new ExpenseWasDeleted($expense)); });