Laravel 8 and below:
There's a method render() in App\Exceptions class:
public function render($request, Exception $exception) {     if ($request->wantsJson() || $request->is('api/*')) {         if ($exception instanceof ModelNotFoundException) {             return response()->json(['message' => 'Item Not Found'], 404);         }          if ($exception instanceof AuthenticationException) {             return response()->json(['message' => 'unAuthenticated'], 401);         }          if ($exception instanceof ValidationException) {             return response()->json(['message' => 'UnprocessableEntity', 'errors' => []], 422);         }          if ($exception instanceof NotFoundHttpException) {             return response()->json(['message' => 'The requested link does not exist'], 400);         }     }      return parent::render($request, $exception); }
Laravel 9 and above:
There's a method register() in App\Exceptions class:
public function register(){    $this->renderable(function (ModelNotFoundException $e, $request) {        if ($request->wantsJson() || $request->is('api/*')) {            return response()->json(['message' => 'Item Not Found'], 404);        }    });     $this->renderable(function (AuthenticationException $e, $request) {        if ($request->wantsJson() || $request->is('api/*')) {            return response()->json(['message' => 'unAuthenticated'], 401);        }    });    $this->renderable(function (ValidationException $e, $request) {        if ($request->wantsJson() || $request->is('api/*')) {            return response()->json(['message' => 'UnprocessableEntity', 'errors' => []], 422);        }    });    $this->renderable(function (NotFoundHttpException $e, $request) {        if ($request->wantsJson() || $request->is('api/*')) {            return response()->json(['message' => 'The requested link does not exist'], 400);        }    });}