authorize('customers.impersonate'); $user = $customer->ensureUser(); session(['impersonator_id' => Auth::guard('operator')->id()]); Auth::guard('web')->login($user); return redirect()->route('dashboard'); } /** Return to the admin session (available while impersonating). */ public function leave(): RedirectResponse { $operatorId = session()->pull('impersonator_id'); if ($operatorId !== null && ($operator = Operator::query()->find($operatorId)) !== null) { // Ends the customer session rather than leaving it dangling // alongside the restored operator one. Auth::guard('web')->logout(); Auth::guard('operator')->login($operator); return redirect()->route('admin.overview'); } return redirect()->route('dashboard'); } }