, favorites: Collection} */ public function forUser(User $user): array { $ownedRooms = $user ->ownedRooms() ->with([ 'players' => fn ($query) => $query ->select(['id', 'room_id', 'user_id', 'name', 'is_moderator', 'created_at']) ->orderByDesc('is_moderator') ->orderBy('created_at'), ]) ->withCount('players') ->orderByRaw('closed_at IS NOT NULL') ->orderByDesc('last_activity_at') ->get(); $favoriteRooms = $user ->favoriteRooms() ->withCount('players') ->orderByRaw('closed_at IS NOT NULL') ->orderByDesc('last_activity_at') ->get(); return [ 'owned' => $ownedRooms, 'favorites' => $favoriteRooms, ]; } }