shouldntReport($e)) { return; } Mail::send('mails.exception', ['exception' => $e], function ($m) { $m->to( config('mail.contactsList.serviceweb'), sprintf('%s Exception Handler', config('app.name')) )->subject('Need help !, an error occured in your application, please check Logs ASAP'); }); } } finally { parent::report($e); } } /** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Throwable $e * @return \Symfony\Component\HttpFoundation\Response * * @throws \Throwable */ public function render($request, Throwable $e) { if (Helper::isRequestForApiV2($request)) { switch (get_class($e)) { case AuthenticationException::class: /** @var AuthenticationException $e */ return response()->json([ 'message' => sprintf('%s, %s', ApiError::needAuth()->label, $e->getMessage()), 'code' => ApiError::needAuth()->value, ], 407); case MethodNotAllowedHttpException::class: /** @var MethodNotAllowedHttpException $e */ return response()->json([ 'message' => sprintf('%s, %s', ApiError::methodNotAllowed()->label, $e->getMessage()), 'code' => ApiError::methodNotAllowed()->value, ], $e->getStatusCode()); case ValidationException::class: /** @var ValidationException $e */ return response()->json([ 'message' => sprintf('%s, %s', ApiError::validationFailed()->label, $e->getMessage()), 'code' => ApiError::validationFailed()->value, 'errors' => $e->errors() ], $e->status); case ModelNotFoundException::class: /** @var ModelNotFoundException $e */ return response()->json([ 'message' => sprintf( ApiError::modelNotFound()->label, \array_slice(explode('\\', $e->getModel()), -1)[0] ), 'code' => ApiError::modelNotFound()->value ], 404); case ApiErrorException::class: /** @var ApiErrorException $e */ return response()->json([ 'message' => $e->getMessage(), 'code' => $e->getCode() ], $e->getStatusCode()); case CrmException::class: default: return response()->json([ 'message' => $e->getMessage(), 'code' => $e->getCode() ], 500); } } return parent::render($request, $e); } }