belongsTo(Advisory::class); } public function company(): BelongsTo { return $this->belongsTo(Company::class); } public function advisoryMembers() { return $this->advisory->members()->whereHas('companyMember', function($query) { $query->where(['company_id' => $this->company_id]); }); } public function companyMembers(): BelongsToMany { return $this->advisory->companyMembers()->where(['company_id' => $this->company_id]); } public function getTitleAttribute(): string { return "Член {$this->advisory->number} {$this->company->name}"; } public function getSubtitleAttribute(): string { return "Член {$this->advisory->number}"; } public function getVoterAttribute(): ?Model { return $this->advisoryMembers()->where(['rank' => AdvisoryMemberRank::VOTER])->first(); } public function getCompanyMembers($rank): BelongsToMany { return $this->companyMembers()->wherePivot('rank', '=', $rank); } }