Erfolgsseite public const CANCELLED = 'cancelled'; // Kunde hat abgebrochen -> Kasse mit Hinweis public const PENDING = 'pending'; // Anbieter noch nicht fertig -> Hinweis, Abgleicher zieht nach public const ERROR = 'error'; // Fehler -> Hinweis, Warenkorb bleibt public function __construct( public readonly string $status, public readonly int $orderId = 0, public readonly string $orderNumber = '', public readonly string $message = '' ) { } public static function paid(int $orderId, string $orderNumber): self { return new self(self::PAID, $orderId, $orderNumber); } public static function cancelled(int $orderId = 0, string $orderNumber = ''): self { return new self(self::CANCELLED, $orderId, $orderNumber); } public static function pending(int $orderId, string $orderNumber, string $message): self { return new self(self::PENDING, $orderId, $orderNumber, $message); } public static function error(string $message, int $orderId = 0, string $orderNumber = ''): self { return new self(self::ERROR, $orderId, $orderNumber, $message); } }