create(); [$user, $tenant] = createUserWithTenant(tenant: $tenant, role: 'owner'); $run = $this->makeArtifactTruthRun( tenant: $tenant, type: 'tenant.review.compose', context: [ 'tenant_id' => (int) $tenant->getKey(), 'workspace_id' => (int) $tenant->workspace_id, 'reason_code' => 'review_missing_sections', ], attributes: [ 'outcome' => 'blocked', 'failure_summary' => [ ['reason_code' => 'review_missing_sections', 'message' => 'The review basis is incomplete.'], ], ], ); $truth = app(ArtifactTruthPresenter::class)->forOperationRun($run); $explanation = $truth->operatorExplanation; expect($explanation)->not->toBeNull() ->and(OperationUxPresenter::surfaceFailureDetail($run))->toBe($explanation?->dominantCauseExplanation) ->and(OperationUxPresenter::surfaceGuidance($run))->toContain((string) $explanation?->nextActionText); });