level; } public function getStatusCode(): int { return Response::HTTP_BAD_REQUEST; } public function getHeaders(): array { return []; } /** * Render the exception to the user by adding a flashed message to the session * and then redirecting them back to the page that they came from. If the * request originated from an API hit, return the error in JSONAPI spec format. */ public function render(Request $request): JsonResponse|RedirectResponse { if ($request->expectsJson()) { return response()->json(Handler::toArray($this), $this->getStatusCode(), $this->getHeaders()); } return redirect()->back()->withInput(); } /** * Log the exception to the logs using the defined error level only if the previous * exception is set. * * @throws \Throwable */ public function report() { if (!$this->getPrevious() instanceof \Exception || !Handler::isReportable($this->getPrevious())) { return null; } try { $logger = Container::getInstance()->make(LoggerInterface::class); } catch (Exception) { throw $this->getPrevious(); } return $logger->{$this->getErrorLevel()}($this->getPrevious()); } }