ArtistEngagement::class, 'fk' => 'engagement_id']; } protected $fillable = [ 'engagement_id', 'event_id', 'stage_id', 'lane', 'start_at', 'end_at', 'version', 'notes', ]; protected function casts(): array { return [ 'lane' => 'integer', 'start_at' => 'datetime', 'end_at' => 'datetime', 'version' => 'integer', ]; } public function getActivitylogOptions(): LogOptions { return LogOptions::defaults() ->logFillable() ->dontLogEmptyChanges(); } public function engagement(): BelongsTo { return $this->belongsTo(ArtistEngagement::class, 'engagement_id'); } public function event(): BelongsTo { return $this->belongsTo(Event::class); } public function stage(): BelongsTo { return $this->belongsTo(Stage::class); } public function isParked(): bool { return $this->stage_id === null; } }