public function boot(): void 	{ 		Fortify::createUsersUsing(CreateNewUser::class); 		Fortify::resetUserPasswordsUsing(ResetUserPassword::class);  		Fortify::authenticateUsing(static function (Request $request): ?User { 			$user = User::loginLogic($request)->canViewRouteQuery('home')->where(config('fortify.email', 'email'), $request->email)->first();  			return $user && Hash::check($request->password, $user->password) ? $user : null; 		});  		Fortify::loginView(static fn (): View => view('auth.login'));  		Fortify::registerView(static function (): View { 			if (!setting('registration_active')) { 				abort(403); 			}  			return view('auth.register', [ 				'oauth_driver' => session('oauth_driver'), 				'oauth_user' => session('oauth_user'), 			]); 		});  		Fortify::requestPasswordResetLinkView(static fn (): View => view('auth.passwords.email'));  		Fortify::resetPasswordView(static fn (Request $request): View => view('auth.passwords.reset', ['request' => $request]));  		Fortify::verifyEmailView(static fn (): View => view('auth.verify'));  		Fortify::confirmPasswordView(static fn (): View => view('auth.passwords.confirm'));  		Fortify::twoFactorChallengeView(static fn (): View => view('auth.2fa'));  		RateLimiter::for('login', static function (Request $request): Limit { 			$email = (string) $request->email;  			return new Limit($email . $request->ip(), setting('login_max_attempts'), setting('login_backoff_minutes')); 		});  		RateLimiter::for('two-factor', static fn (Request $request): Limit => new Limit($request->session()->get('login.id'), setting('login_max_attempts'), setting('login_backoff_minutes'))); 	}