protected function authenticate()
    {
        if (empty($this->guards) && Auth::check()) {
            return;
        }

        foreach ($this->guards as $guard) {
            if (Auth::guard($guard)->check()) {
                Auth::shouldUse($guard);
                return;
            }
        }

        throw new AuthenticationException('Unauthenticated.', $this->guards);
    }