Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

imamhsn195's avatar

Upgrade Laravel 5.3 to Laravel 7

I have upgraded laravel 5.3 to 7. Everything working nicely and perfectly. But There is a error message showing during composer commands. Someone please help me to figure out why this error is showing and how can I solve it. Thank you

Generating autoload files
> Illuminate\Foundation\ComposerScripts::postInstall
> php artisan optimize
Configuration cache cleared!
Configuration cached successfully!
Route cache cleared!

   LogicException

  Unable to prepare route [api/user] for serialization. Uses Closure.

  at E:\xampp\htdocs\reims\vendor\laravel\framework\src\Illuminate\Routing\Route.php:1039
    1035|      */
    1036|     public function prepareForSerialization()
    1037|     {
    1038|         if ($this->action['uses'] instanceof Closure) {
  > 1039|             throw new LogicException("Unable to prepare route [{$this->uri}] for serialization. Uses Closure.");
    1040|         }
    1041|
    1042|         $this->compileRoute();
    1043|

  1   E:\xampp\htdocs\reims\vendor\laravel\framework\src\Illuminate\Foundation\Console\RouteCacheCommand.php:62
      Illuminate\Routing\Route::prepareForSerialization()

  2   E:\xampp\htdocs\reims\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:32
      Illuminate\Foundation\Console\RouteCacheCommand::handle()
Script php artisan optimize handling the post-install-cmd event returned with error code 1
0 likes
3 replies
ajithlal's avatar

in your routes/api.php file there is a default route comment it or remove it and run the command again.

imamhsn195's avatar

I need that api router for sending data to android application

ajithlal's avatar
ajithlal
Best Answer
Level 18

you are getting the error because of

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

move that closure functionality to some controller and access it. something like:

Route::middleware('auth:api')->get('/user', 'UserController@user');

Please or to participate in this conversation.