$request->user() instanceof MustVerifyEmail, 'status' => $request->session()->get('status'), ]); } #[Patch('/', name: 'profile.update')] public function update(Request $request): RedirectResponse { $this->validate($request, [ 'name' => ['required', 'string', 'max:255'], 'email' => [ 'required', 'string', 'lowercase', 'email', 'max:255', Rule::unique(User::class)->ignore(user()->id), ], ]); $request->user()->fill($request->only('name', 'email')); $request->user()->save(); return to_route('profile'); } #[Put('/', name: 'profile.password')] public function password(Request $request): RedirectResponse { $validated = $request->validate([ 'current_password' => ['required', 'current_password'], 'password' => ['required', Password::defaults(), 'confirmed'], ]); $request->user()->update([ 'password' => Hash::make($validated['password']), ]); return to_route('profile'); } #[Post('/enable-two-factor', name: 'profile.enable-two-factor')] public function enableTwoFactor(): RedirectResponse { if (config('app.demo')) { return back()->with('error', 'Two factor authentication cannot be enabled in demo mode.'); } $user = user(); app(EnableTwoFactorAuthentication::class)($user); return back() ->with('success', 'Two factor authentication enabled.') ->with('data', [ 'qr_code' => $user->twoFactorQrCodeSvg(), 'qr_code_url' => $user->twoFactorQrCodeUrl(), 'recovery_codes' => $user->recoveryCodes(), ]); } #[Post('/disable-two-factor', name: 'profile.disable-two-factor')] public function disableTwoFactor(): RedirectResponse { $user = user(); app(DisableTwoFactorAuthentication::class)($user); return back()->with('success', 'Two factor authentication disabled.'); } }