app->isLocal()) { return $next($request); } $captchaProviders = collect(CaptchaProvider::get())->filter(fn (CaptchaProvider $provider) => $provider->isEnabled())->all(); foreach ($captchaProviders as $captchaProvider) { $response = $captchaProvider->validateResponse(); if ($response['success'] && $captchaProvider->verifyDomain($response['hostname'] ?? '', $request->url())) { return $next($request); } event(new FailedCaptcha($request->ip(), $response['message'] ?? null)); throw new HttpException(Response::HTTP_BAD_REQUEST, "Failed to validate {$captchaProvider->getId()} captcha data."); } // No captcha enabled return $next($request); } }