'date','finish_date'=>'date','is_private'=>'boolean']; const STATUSES = ['playing','played','want_to_play','on_hold','dropped']; protected static function boot(): void { parent::boot(); static::created(function (UserGame $ug) { ActivityService::log($ug->user, 'added_to_library', $ug->game, ['status' => $ug->status]); }); static::updated(function (UserGame $ug) { if ($ug->isDirty('rating') && $ug->rating) { ActivityService::log($ug->user, 'rated_game', $ug->game, ['rating' => $ug->rating]); } }); } public function user(): BelongsTo { return $this->belongsTo(User::class); } public function game(): BelongsTo { return $this->belongsTo(Game::class); } }