string('join_code')->trim()->upper()->toString(); $playerName = $request->string('player_name')->trim()->toString(); $room = Room::query()->where('join_code', $joinCode)->first(); $playerId = null; if ($room !== null) { $sessionPlayerId = $request->session()->get("room_players.{$room->id}"); if (is_numeric($sessionPlayerId)) { $playerId = $room->players() ->whereKey((int) $sessionPlayerId) ->value('id'); } } Auth::guard('web')->logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); if ($room !== null && is_numeric($playerId)) { $request->session()->put("room_players.{$room->id}", (int) $playerId); } return to_route('embedded.room', [ 'join_code' => $joinCode, 'player_name' => $playerName, ]); } }