'licenses', 'middleware' => ['auth']], function () { Route::get('{licenseId}/clone', [Licenses\LicensesController::class, 'getClone'])->name('clone/license'); Route::get('{licenseId}/freecheckout', [Licenses\LicensesController::class, 'getFreeLicense'] )->name('licenses.freecheckout'); Route::get('{license}/checkout/{seatId?}', [Licenses\LicenseCheckoutController::class, 'create']) ->name('licenses.checkout') ->breadcrumbs(fn (Trail $trail, License $license) => $trail->parent('licenses.show', $license) ->push(trans('general.checkout'), route('licenses.checkout', $license)) ); Route::post( '{licenseId}/checkout/{seatId?}', [Licenses\LicenseCheckoutController::class, 'store'] ); //name() would duplicate here, so we skip it. Route::get('{licenseSeat}/checkin/{backto?}', [Licenses\LicenseCheckinController::class, 'create']) ->name('licenses.checkin') ->breadcrumbs(fn (Trail $trail, LicenseSeat $licenseSeat) => $trail->parent('licenses.show', $licenseSeat->license) ->push(trans('general.checkin'), route('licenses.checkin', $licenseSeat)) ); Route::post('{licenseId}/checkin/{backto?}', [Licenses\LicenseCheckinController::class, 'store'] )->name('licenses.checkin.save'); Route::post( '{licenseId}/bulkcheckin', [Licenses\LicenseCheckinController::class, 'bulkCheckin'] )->name('licenses.bulkcheckin'); Route::post( '{licenseId}/bulkcheckout', [Licenses\LicenseCheckoutController::class, 'bulkCheckout'] )->name('licenses.bulkcheckout'); Route::post( '{licenseId}/upload', [Licenses\LicenseFilesController::class, 'store'] )->name('upload/license'); Route::delete( '{licenseId}/deletefile/{fileId}', [Licenses\LicenseFilesController::class, 'destroy'] )->name('delete/licensefile'); Route::get( '{licenseId}/showfile/{fileId}/{download?}', [Licenses\LicenseFilesController::class, 'show'] )->name('show.licensefile'); Route::get( 'export', [ Licenses\LicensesController::class, 'getExportLicensesCsv' ] )->name('licenses.export'); }); Route::resource('licenses', Licenses\LicensesController::class, [ 'middleware' => ['auth'], ]);