credentialsAreConfigured($credentials)) { throw new PluginNotConfiguredException('Oauth2 credentials are not configured'); } return $this->buildClient($credentials); } abstract protected function buildClient(CredentialsInterface $credentials): ClientInterface; abstract protected function credentialsAreConfigured(CredentialsInterface $credentials): bool; }