$nextSteps */ public function __construct( public ?string $reasonCode, public ?string $translationArtifact, public ?string $operatorLabel, public ?string $shortExplanation, public ?string $diagnosticCode, public array $nextSteps = [], ) {} public static function fromReasonResolutionEnvelope( ?ReasonResolutionEnvelope $reason, ?string $translationArtifact = null, ): ?self { if (! $reason instanceof ReasonResolutionEnvelope) { return null; } return new self( reasonCode: $reason->internalCode, translationArtifact: $translationArtifact, operatorLabel: $reason->operatorLabel, shortExplanation: $reason->shortExplanation, diagnosticCode: $reason->diagnosticCode(), nextSteps: array_values(array_map( static fn (NextStepOption $nextStep): string => $nextStep->label, $reason->nextSteps, )), ); } /** * @return array{ * reasonCode: ?string, * translationArtifact: ?string, * operatorLabel: ?string, * shortExplanation: ?string, * diagnosticCode: ?string, * nextSteps: array * } */ public function toArray(): array { return [ 'reasonCode' => $this->reasonCode, 'translationArtifact' => $this->translationArtifact, 'operatorLabel' => $this->operatorLabel, 'shortExplanation' => $this->shortExplanation, 'diagnosticCode' => $this->diagnosticCode, 'nextSteps' => $this->nextSteps, ]; } }