morphMany(Address::class, 'owner'); } /** * @return HasMany */ public function companyModules(): hasMany { return $this->hasMany(CompanyModule::class); } /** * @return hasManyThrough */ public function employees(): hasManyThrough { return $this->hasManyThrough(User::class, CompanyModule::class, 'company_id', 'company_module_id'); } public function orders() { return $this->companyModules()->where('type', '=', BusinessType::IMPORTER)->first()->orders->sortByDesc('id'); $orders = []; $this->CompanyModules->each(function ($companyModule) { $orders[] = $companyModule->orders->sortByDesc('id'); }); return collect($orders); } /** * @return MorphMany */ public function documents(): morphMany { return $this->morphMany(Document::class, 'owner'); } /** * @return MorphMany */ public function contacts(): morphMany { return $this->morphMany(Contact::class, 'owner'); } /** * @return HasMany */ public function banks(): HasMany { return $this->HasMany(BankAccount::class, 'company_id'); } }