lotteryAdmin(); abort_if($admin === null, 401); $data = $request->validated(); abort_if( ! AdminAgentSettlementScope::siteAccessible($admin, (int) $data['admin_site_id']), 404, ); $id = DB::table('settlement_periods')->insertGetId([ 'admin_site_id' => (int) $data['admin_site_id'], 'period_start' => $data['period_start'], 'period_end' => $data['period_end'], 'status' => 'open', 'created_at' => now(), 'updated_at' => now(), ]); $row = DB::table('settlement_periods')->where('id', $id)->first(); AuditLogger::recordForAdmin( $admin, $request, moduleCode: 'settlement', actionCode: 'settlement_period.store', targetType: 'settlement_period', targetId: (string) $id, beforeJson: null, afterJson: (array) $row, ); $request->attributes->set(RecordAdminApiAudit::ATTRIBUTE_AUDIT_RECORDED, true); return ApiResponse::success((array) $row)->setStatusCode(201); } }