Laravel Auth attempt, after db switch

I manually authenticate users on login, here is my full Login function

    public function Login(Request $request)
    {
        $credentials = $request->validate([
            'email' => ['required', 'email'],
            'password' => ['required'],
        ]);

        $email_host = explode('@', $credentials['email'])[1];
        $company = Companies::where('email_host', $email_host)->first();

        if ($company) {
            try {
                // Set up dynamic database configuration
                Config::set("database.connections.$company->email_host", [
                    'driver' => $company['db_driver'],
                    'host' => $company['db_host'],
                    'port' => $company['db_port'],
                    'database' => $company['db_name'],
                    'username' => $company['db_user'],
                    'password' => $company['db_password'],
                    'charset' => 'utf8mb4',
                    'collation' => 'utf8mb4_unicode_ci',
                    'prefix' => '',
                    'strict' => true,
                    'engine' => null,
                ]);
                Config::set("database.default", $company->email_host);

                DB::purge();
                DB::reconnect();

                $user = User::where('email', $credentials['email'])->first();

                if (Auth::attempt($credentials)) {
                    $request->session()->regenerate();

                    $user = Auth::user();

                    session([
                        'username' => $user->username,
                        'company_id' => $user->company_id,
                        'warehouse' => $user->warehouse,
                        'company_database' => serialize($company),
                    ]);

                    if ($user->role == 'basic') {
                        return redirect('/users/vaccations/set-vaccation');
                    }

                    return redirect()->intended('/');
                }

            } catch (Exception $e) {
                // Error occurred while configuring the database connection
                return back()->withErrors([
                    'email' => 'Error occurred while configuring the database connection: ' . $e->getMessage(),
                ])->onlyInput('email');
            }
        } else {
            // Company not found
            return back()->withErrors([
                'email' => 'The provided email does not belong to a valid company.',
            ])->onlyInput('email');
        }
    }

the problem is in Auth::attempt(). First, i select db credentials, from master db, than i switch db, and procced to login user, but Auth seem to be using first(default, master) db. How do i fix this? In env i only have one db credentials(master), other db credentials are stored in master db as mentioned above.