'date', 'end_date' => 'date', ]; } public function cooperation(): BelongsTo { return $this->belongsTo(Cooperation::class); } public function reports(): HasManyThrough { return $this->hasManyThrough( Report::class, MediaTaskAssignment::class, 'task_assignment_id', // Foreign key di tabel media_task_assignment 'media_task_assignment_id', // Foreign key di tabel reports 'id', // Local key di tabel task_assignments 'id' // Local key di tabel media_task_assignment ); } public function rejectionReasons(): MorphMany { return $this->morphMany(RejectionReason::class, 'rejectable'); } public function mediaTaskAssignments(): HasMany { return $this->hasMany(MediaTaskAssignment::class); } public function partnerMedia(): BelongsToMany { return $this->belongsToMany(PartnerMedia::class, 'media_task_assignment') ->using(MediaTaskAssignment::class) ->withPivot(['status']) ->withTimestamps(); } }