name('login'); // Public search endpoint - allows searching without authentication Route::get('/persons/search', [PersonController::class, 'publicSearch'])->name('persons.public.search'); // Protected routes - require Sanctum authentication Route::middleware('auth:sanctum')->group(function () { // User authentication routes Route::get('/user', [AuthController::class, 'me'])->name('user.profile'); Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); // Admin-only routes Route::middleware('ability:admin')->group(function () { Route::post('/register', [AuthController::class, 'register'])->name('register'); }); // Person API endpoints - all CRUD operations protected by authentication Route::apiResource('persons', PersonController::class); // Custom route for finding a person by ID card number Route::get('persons/id-card/{idCardNo}', [PersonController::class, 'findByIdCard'])->name('persons.findByIdCard'); });