Why Laravel routes registered in module custom service provider not available on url?

I’m refactoring backend part of existing Laravel 10 + Vue 3 SPA app to Modules that among other things contain route files that registered in module service provider:


class AuthenticationServiceProvider extends ServiceProvider
{
    public function boot(): void
    {
       $this->registerRoutes();
    }

    public function register()
    {
        // .....
    }

    protected function registerRoutes(): void
    {
        Route::middleware('api')
            ->prefix('api')
            ->namespace('App\Modules\Authentication\Http\Controllers\')
            ->group(__DIR__ . '/../Authentication/routes/api/auth.php');
    }
}


This is auth.php file:

Route::group(['middleware' => ['api.auth'], 'prefix' => 'auth'], function () {
    Route::post('register', [AuthenticationController::class, 'register'])->name('auth.register')->withoutMiddleware('api.auth');
    Route::post('login', [AuthenticationController::class, 'login'])->name('auth.login')->withoutMiddleware('api.auth');
    Route::get('refresh', [AuthenticationController::class, 'refresh'])->name('auth.refresh')->withoutMiddleware('api.auth');
    Route::get('logout', [AuthenticationController::class, 'logout'])->name('auth.logout');
    Route::get('get-authenticated', [AuthenticationController::class, 'getAuthenticated'])->name('customers.get-authenticated');
});

Module service provider is registered in Laravel config app.php file in providers array:

This is my web.php:

Route::any('{all}', function () {
    return view('welcome');
})
    ->where('all', '^(?!api).*$')
    ->where('all', '^(?!storage).*$');

Routes are registered and visible in php artisan route:list, but when I try test this route I can’t reach api/auth/login route and others

How to solve this problem?