'date', 'final_submission_date' => 'date', 'payment_amount' => 'integer', 'payment_date' => 'date', 'status' => CooperationStatus::class, ]; } #[Scope] protected function pending(Builder $query): void { $query->where('status', CooperationStatus::PENDING); } #[Scope] protected function assignment(Builder $query): void { $query->where('status', CooperationStatus::ASSIGNMENT); } #[Scope] protected function verification(Builder $query): void { $query->where('status', CooperationStatus::VERIFICATION); } #[Scope] protected function payment(Builder $query): void { $query->where('status', CooperationStatus::PAYMENT); } #[Scope] protected function completed(Builder $query): void { $query->where('status', CooperationStatus::COMPLETED); } public function cooperationMedias(): HasMany { return $this->hasMany(CooperationMedia::class); } public function partnerMedias(): BelongsToMany { return $this->belongsToMany(PartnerMedia::class, 'cooperation_media') ->withPivot(['status']) ->withTimestamps(); } public function proposals(): HasMany { return $this->hasMany(CooperationProposal::class); } public function reports(): HasManyThrough { return $this->hasManyThrough(Report::class, TaskAssignment::class); } public function taskAssignments(): HasMany { return $this->hasMany(TaskAssignment::class); } }