belongsTo(Complex::class, 'complex_id'); } public function clients() { return $this->hasManyThrough( Client::class , DealClients::class , 'deal_id' , 'id' , 'id' , 'client_id' ); //return $this->hasMany(DealClients::class); } public function agent() { return $this->belongsTo(Agent::class, 'agent_id'); } public function contract() { return $this->hasOne(Contract::class, 'deal_id'); } protected static function booted(): void { static::creating(function (Deal $deal) { $deal->confirm_token = hash('sha256', json_encode($deal->all())); }); static::created(function (Deal $deal) { $deal->notify(new DealCreated()); }); static::updated(function (Deal $deal) { if ($deal->wasChanged('status')) { switch ($deal->status) { case DealStatus::UNIQUE: $deal->notify(new DealUnique()); break; case DealStatus::NOT_UNIQUE: $deal->notify(new DealNotUnique()); break; } } }); } }