confirmation_url ?: null; } public function isOpen(): bool { return $this->status === self::STATUS_OPEN; } /** * Confirmed: all of its subscriptions are running. */ public function isCompleted(): bool { return $this->status === self::STATUS_COMPLETED; } /** * Cancelled or expired: all of its drafts were cancelled. */ public function isCancelled(): bool { return in_array($this->status, [self::STATUS_CANCELLED, self::STATUS_EXPIRED], true); } /** * @return list */ public function subscriptionIds(): array { return array_values((array) ($this->subscription_ids ?? [])); } }