value, 'succeeded', 'completed', 'complete', 'ok' => self::Success, self::Failed->value, 'failure', 'error', 'errored' => self::Failed, self::Partial->value, 'partially_succeeded', 'partial_success', 'partial_failure' => self::Partial, self::Blocked->value, 'skipped', 'deferred', 'cancelled', 'canceled' => self::Blocked, self::Info->value, 'pending', 'queued', 'running' => self::Info, default => self::Info, }; } public static function normalizeValue(mixed $value): string { return self::normalize($value)->value; } public function label(): string { return match ($this) { self::Success => 'Success', self::Failed => 'Failed', self::Partial => 'Partial', self::Info => 'Info', self::Blocked => 'Blocked', }; } }