- $middleware = (\Route::getMiddlewareGroups()['web_errors']);
- return (new Pipeline($this->container))
- ->send($request)
- ->through($middleware)
- ->then($callback);
+ $code = $e->getCode() === 0 ? 500 : $e->getCode();
+ $headers = [];
+ if ($e instanceof HttpException) {
+ $code = $e->getStatusCode();
+ $headers = $e->getHeaders();
+ }
+
+ $responseData = [
+ 'error' => [
+ 'message' => $e->getMessage(),
+ ]
+ ];
+
+ if ($e instanceof ValidationException) {
+ $responseData['error']['validation'] = $e->errors();
+ $code = $e->status;
+ }
+
+ $responseData['error']['code'] = $code;
+ return new JsonResponse($responseData, $code, $headers);