where('status', 'in_progress') ->where('created_at', '<', now()->subHours(12)) ->each(function (Session $session): void { $session->update([ 'status' => 'unfinished', 'completed_at' => now(), ]); ActivityLogger::log( 'session_auto_closed', $session->user_id, sessionId: $session->id, categoryId: $session->category_id, metadata: ['reason' => 'idle_12h'], ); }); } }