lotteryAdmin(); abort_if($admin === null, 401); if (! $admin->isSuperAdmin()) { return ApiMessage::errorResponse( $request, 'admin.integration_site_store_deprecated', ErrorCode::AdminForbidden->value, ['hint' => 'Use POST /api/v1/admin/agent-lines to provision a new agent line.'], 403, )->withHeaders([ 'Deprecation' => 'true', 'Link' => '; rel="successor-version"', ]); } $result = $service->create($request->validated()); $site = $result['site']; $payload = AdminIntegrationSitePresenter::withPlainSecretsOnce( AdminIntegrationSitePresenter::detail($site), $result['secrets'], ); AuditLogger::recordForAdmin( $admin, $request, moduleCode: 'integration', actionCode: 'create', targetType: 'admin_site', targetId: (string) $site->id, afterJson: AdminIntegrationSitePresenter::detail($site), ); $request->attributes->set(RecordAdminApiAudit::ATTRIBUTE_AUDIT_RECORDED, true); return ApiResponse::success($payload)->setStatusCode(201); } }