create(); $result = app(ProviderOperationStartGate::class)->start( tenant: $tenant, connection: null, operationType: 'provider.connection.check', dispatcher: static function (): void {}, ); /** @var OperationRun $run */ $run = $result->run->refresh(); $context = is_array($run->context ?? null) ? $run->context : []; $report = $context['verification_report'] ?? null; expect($result->status)->toBe('blocked') ->and($run->status)->toBe(OperationRunStatus::Completed->value) ->and($run->outcome)->toBe(OperationRunOutcome::Blocked->value) ->and($report)->toBeArray(); /** @var array $report */ expect(VerificationReportSchema::isValidReport($report))->toBeTrue(); $checks = $report['checks'] ?? null; $checks = is_array($checks) ? $checks : []; expect($checks)->toHaveCount(1) ->and($checks[0]['key'] ?? null)->toBe('provider.connection.check') ->and($checks[0]['reason_code'] ?? null)->toBe($context['reason_code'] ?? null) ->and($checks[0]['next_steps'] ?? null)->toBe($context['next_steps'] ?? null); });