lotteryAdmin(); abort_if($admin === null, 401); abort_if(! AdminAgentSettlementScope::periodAccessible($admin, $settlement_period), 404); AdminAgentSettlementScope::assertCanManageSitePeriods($admin); $before = DB::table('settlement_periods')->where('id', $settlement_period)->first(); $result = $service->closePeriod($settlement_period); AuditLogger::recordForAdmin( $admin, $request, moduleCode: 'settlement', actionCode: 'settlement_period.close', targetType: 'settlement_period', targetId: (string) $settlement_period, beforeJson: $before !== null ? (array) $before : null, afterJson: $result, ); $request->attributes->set(RecordAdminApiAudit::ATTRIBUTE_AUDIT_RECORDED, true); return ApiResponse::success($result); } }