group(function () { // Auth Route::prefix('client')->as('client.') ->group(function () { Route::controller(ClientController::class)->group(function () { Route::post('login', 'login')->name('login'); Route::post('register', 'register')->name('register'); Route::group(['middleware' => ['api.auth']], function () { Route::get('me', 'me')->name('me'); Route::post('logout', 'logout')->name('logout'); }); }); }); // Services (Products) - Public & Protected Routes Route::prefix('services')->as('services.')->group(function () { Route::controller(ServiceController::class)->group(function () { Route::get('get-list', 'getService')->name('getList'); Route::get('{product:slug}', 'getDetailService')->name('detail'); }); }); Route::middleware(['api.auth'])->prefix('orders')->as('orders.')->group(function () { Route::controller(OrderController::class)->group(function () { Route::get('/', 'getList')->name('list'); Route::post('/', 'storeOrder')->name('store'); Route::post('{id}/pay', 'payOrder')->name('pay'); }); }); Route::prefix('setting')->as('setting.')->group(function () { Route::controller(SettingController::class)->group(function () { Route::get('/', 'getSetting')->name('get'); }); }); }); Route::any('{any}', function () { return response()->json([ 'error' => true, 'message' => 'API Route not found' ], 404); })->where('any', '.*');