belongsToMany(Media::class, 'media_orders', 'order_id', 'media_id') ->using(MediaOrder::class) ->withPivot(['status', 'rejection_reason']) ->withTimestamps(); } public function cooperation() { return $this->belongsTo(Cooperation::class, 'cooperation_id', 'id')->withTrashed(); } public function reports() { return $this->hasMany(Report::class, 'order_id', 'id'); } public function completions() { return $this->hasMany(CooperationCompletion::class, 'order_id', 'id'); } public function getActivitylogOptions(): LogOptions { return LogOptions::defaults() ->logOnly([ 'start_date', 'end_date', 'image', 'task_description', 'required_reports', 'cooperation_id', 'enhancer_id', ]) // kolom yang dicatat ->useLogName('order') // nama log ->logOnlyDirty(); // hanya log kalau ada perubahan } public function getDescriptionForEvent(string $eventName): string { switch ($eventName) { case 'created': $eventName = 'dibuat'; break; case 'updated': $eventName = 'diubah'; break; case 'deleted': $eventName = 'dihapus'; break; } return "Media Order telah {$eventName}"; } }