prefix('api/v2')->name('api.v2.')->group(function (): void { Route::apiResource('students', StudentController::class)->only(['index', 'store', 'show', 'update']); Route::post('students/{student}/status-transitions', [StudentController::class, 'transition'])->name('students.status-transitions.store'); Route::post('finance/payments', [PaymentController::class, 'store'])->name('finance.payments.store'); Route::patch('finance/payments/{payment}', [PaymentController::class, 'update'])->name('finance.payments.update'); Route::post('finance/payments/{payment}/reverse', [PaymentController::class, 'reverse'])->name('finance.payments.reverse'); Route::get('finance/payments/{payment}/file', [PaymentFileController::class, 'show'])->name('finance.payments.file'); Route::post('attendance/scans', [ScanController::class, 'store'])->name('attendance.scans.store'); Route::post('communication/recipient-previews', [RecipientPreviewController::class, 'store'])->name('communication.recipient-previews.store'); Route::post('communication/bulk-sends', [BulkSendController::class, 'store'])->name('communication.bulk-sends.store'); Route::get('reporting/reports', [ReportController::class, 'index'])->name('reporting.reports.index'); Route::post('reporting/reports/run', [ReportController::class, 'run'])->name('reporting.reports.run'); Route::post('reporting/exports', [ReportExportController::class, 'store'])->name('reporting.exports.store'); Route::middleware(['ensure.domain.profile:islamic_sunday_school']) ->prefix('islamic-sunday-school') ->name('islamic-sunday-school.') ->group(function (): void { Route::get('quran-progress', [QuranProgressController::class, 'index'])->name('quran-progress.index'); }); });