Level 102
Sounds like you have 2 routes with the same name
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Unable to prepare route [confirm-password] for serialization. Another route has already been assigned name [password.confirm].
at C:\xampp\htdocs\optical\vendor\laravel\framework\src\Illuminate\Routing\AbstractRouteCollection.php:219
215▕ $route->name($this->generateRouteName());
216▕
217▕ $this->add($route);
218▕ } elseif (! is_null($symfonyRoutes->get($name))) {
➜ 219▕ throw new LogicException("Unable to prepare route [{$route->uri}] for serialization. Another route has already been assigned name [{$name}].");
220▕ }
221▕
222▕ $symfonyRoutes->add($route->getName(), $route->toSymfonyRoute());
223▕
1 C:\xampp\htdocs\optical\vendor\laravel\framework\src\Illuminate\Routing\AbstractRouteCollection.php:180
Illuminate\Routing\AbstractRouteCollection::addToSymfonyRoutesCollection(Object(Symfony\Component\Routing\RouteCollection), Object(Illuminate\Routing\Route))
2 C:\xampp\htdocs\optical\vendor\laravel\framework\src\Illuminate\Routing\RouteCollection.php:246
Illuminate\Routing\AbstractRouteCollection::toSymfonyRouteCollection()
Sounds like you have 2 routes with the same name
<?php
use App\Http\Controllers\CustomerController;
use Illuminate\Support\Facades\Route;
use App\Http\Middleware\isAdminMiddleware;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\AppointmentController;
use App\Http\Controllers\TestController;
use App\Models\PersonalTest;
use App\Http\Controllers\PersonalTestController;
use App\Http\Controllers\FinanceController;
use App\Http\Controllers\TransactionController;
use App\Http\Controllers\emp\EmpFinanceController;
use App\Http\Controllers\emp\EmpTransactionController;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\Auth\RegisteredUserController;
use App\Http\Controllers\EmployeeController;
Route::get('/', function () {
return view('auth.login');
});
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');
Route::get('/dashboard', [HomeController::class, 'index'])->name('dashboard')->middleware(['auth', 'verified']);
Route::post('/logout', '\App\Http\Controllers\Auth\LoginController@logout');
require __DIR__.'/auth.php';
Route::get('/empfinance', [EmpFinanceController::class, 'index'])->name('emp.finance');
Route::get('/emptransaction', [EmpTransactionController::class, 'index'])->name('emp.transaction');
Route::group(['isAdminMiddleware' => ['is_admin']],function (){
Route::get('/admin', function () {
return view('admin');
})->name('admin');
////// customers routes
Route::get('/home', [HomeController::class, 'index'])->name('home');
Route::get('/employee', [EmployeeController::class, 'index'])->name('admin.employee');
Route::get('/customer', [CustomerController::class, 'index'])->name('admin.customer');
Route::get('/customer/create', [CustomerController::class, 'create'])->name('admin.customer.create');
Route::post('/customer/store', [CustomerController::class, 'store'])->name('admin.customer.store');
Route::get('/customer/edit/{id}', [CustomerController::class, 'edit'])->name('admin.customer.edit');
Route::put('/customer/update/{id}', [CustomerController::class, 'update'])->name('admin.customer.update');
Route::get('/customer/delete/{id}', [CustomerController::class, 'destroy'])->name('admin.customer.delete');
//////
//// appointment routes
Route::get('/appointment', [AppointmentController::class, 'index'])->name('admin.appointment');
Route::get('/appointment/create', [AppointmentController::class, 'create'])->name('admin.appointment.create');
Route::post('/appointment/store', [AppointmentController::class, 'store'])->name('admin.appointment.store');
Route::get('/appointment/edit/{id}', [AppointmentController::class, 'edit'])->name('admin.appointment.edit');
Route::put('/appointment/update/{id}', [AppointmentController::class, 'update'])->name('admin.appointment.update');
Route::get('/appointment/delete/{id}', [AppointmentController::class, 'destroy'])->name('admin.appointment.delete');
//// test routes
Route::get('/test', [TestController::class, 'index'])->name('admin.test');
Route::get('/test/create', [TestController::class, 'create'])->name('admin.test.create');
Route::post('/test/store', [TestController::class, 'store'])->name('admin.test.store');
Route::get('/test/edit/{id}', [TestController::class, 'edit'])->name('admin.test.edit');
Route::put('/test/update/{id}', [TestController::class, 'update'])->name('admin.test.update');
Route::get('/test/delete/{id}', [TestController::class, 'destroy'])->name('admin.test.delete');
////personal test routes
Route::get('/ptest', [PersonalTestController::class, 'index'])->name('admin.ptest');
Route::get('/ptest/create', [PersonalTestController::class, 'create'])->name('admin.ptest.create');
Route::post('/ptest/store', [PersonalTestController::class, 'store'])->name('admin.ptest.store');
Route::get('/ptest/edit/{id}', [PersonalTestController::class, 'edit'])->name('admin.ptest.edit');
Route::put('/ptest/update/{id}', [PersonalTestController::class, 'update'])->name('admin.ptest.update');
Route::get('/ptest/delete/{id}', [PersonalTestController::class, 'destroy'])->name('admin.ptest.delete');
// finance routes
Route::get('/finance', [FinanceController::class, 'index'])->name('admin.finance');
Route::get('/finance/create', [FinanceController::class, 'create'])->name('admin.finance.create')->middleware(['password.confirm']);
Route::post('/finance/store', [FinanceController::class, 'store'])->name('admin.finance.store');
Route::get('/finance/edit/{id}', [FinanceController::class, 'edit'])->name('admin.finance.edit')->middleware(['password.confirm']);;
Route::put('/finance/update/{id}', [FinanceController::class, 'update'])->name('admin.finance.update');
Route::get('/finance/delete/{id}', [FinanceController::class, 'destroy'])->name('admin.finance.delete');
// transaction routes
///
Route::get('/register', [RegisteredUserController::class, 'create'])->name('register')->middleware(['password.confirm']);
///
Route::get('/transaction', [TransactionController::class, 'index'])->name('admin.transaction');
Route::get('/transaction/create', [TransactionController::class, 'create'])->name('admin.transaction.create')->middleware(['password.confirm']);;
Route::post('/transaction/store', [TransactionController::class, 'store'])->name('admin.transaction.store');
Route::get('/transaction/edit/{transaction}', [TransactionController::class, 'edit'])->name('admin.transaction.edit')->middleware(['password.confirm']);;
Route::put('/transaction/update/{transaction}', [TransactionController::class, 'update'])->name('admin.transaction.update');
Route::get('/transaction/delete/{id}', [TransactionController::class, 'destroy'])->name('admin.transaction.delete');
});
/// emp controller
@Sinnbeck its a middleware with same name
@mohammadkhallaf Maybe in this file
require __DIR__.'/auth.php';
<?php
use App\Http\Controllers\Auth\AuthenticatedSessionController;
use App\Http\Controllers\Auth\ConfirmablePasswordController;
use App\Http\Controllers\Auth\EmailVerificationNotificationController;
use App\Http\Controllers\Auth\EmailVerificationPromptController;
use App\Http\Controllers\Auth\NewPasswordController;
use App\Http\Controllers\Auth\PasswordResetLinkController;
use App\Http\Controllers\Auth\RegisteredUserController;
use App\Http\Controllers\Auth\VerifyEmailController;
use Illuminate\Support\Facades\Route;
Route::middleware('guest')->group(function () {
Route::get('register', [RegisteredUserController::class, 'create'])
->name('register');
Route::post('register', [RegisteredUserController::class, 'store']);
Route::get('login', [AuthenticatedSessionController::class, 'create'])
->name('login');
Route::post('login', [AuthenticatedSessionController::class, 'store']);
Route::get('forgot-password', [PasswordResetLinkController::class, 'create'])
->name('password.request');
Route::post('forgot-password', [PasswordResetLinkController::class, 'store'])
->name('password.email');
Route::get('reset-password/{token}', [NewPasswordController::class, 'create'])
->name('password.reset');
Route::post('reset-password', [NewPasswordController::class, 'store'])
->name('password.update');
});
Route::middleware('auth')->group(function () {
Route::get('verify-email', [EmailVerificationPromptController::class, '__invoke'])
->name('verification.notice');
Route::get('verify-email/{id}/{hash}', [VerifyEmailController::class, '__invoke'])
->middleware(['signed', 'throttle:6,1'])
->name('verification.verify');
Route::post('email/verification-notification', [EmailVerificationNotificationController::class, 'store'])
->middleware('throttle:6,1')
->name('verification.send');
Route::get('confirm-password', [ConfirmablePasswordController::class, 'show'])
->name('password.confirm');
Route::post('confirm-password', [ConfirmablePasswordController::class, 'store']);
Route::post('logout', [AuthenticatedSessionController::class, 'destroy'])
->name('logout');
});
@mohammadkhallaf So my guess is that you have some package (starter kit) that defines the route as well? Yours is this
Route::get('confirm-password', [ConfirmablePasswordController::class, 'show'])
->name('confirm.password');
only im trying to apply confirm.passwod middleware in some routes
@mohammadkhallaf The error clearly states that you have two routes with the name "password.confirm"
Another route has already been assigned name [password.confirm].
->name('password.confirm');
@Sinnbeck what should i do
Please or to participate in this conversation.