$arguments */ public static function castUsing(array $arguments): string { return InvoiceBackupCast::class; } public static function fromArray(array $data): self { return new self( guid: $data['guid'] ?? '', cancellation: Cancellation::fromArray($data['cancellation'] ?? []), parent_invoice_id: $data['parent_invoice_id'] ?? null, parent_invoice_number: $data['parent_invoice_number'] ?? null, document_type: $data['document_type'] ?? null, child_invoice_ids: isset($data['child_invoice_ids']) ? collect($data['child_invoice_ids']) : new Collection(), redirect: $data['redirect'] ?? null, adjustable_amount: $data['adjustable_amount'] ?? 0, ); } /** * Add a child invoice ID to the collection */ public function addChildInvoiceId(string $invoiceId): void { $this->child_invoice_ids->push($invoiceId); } /** * Remove a child invoice ID from the collection */ public function removeChildInvoiceId(string $invoiceId): void { $this->child_invoice_ids = $this->child_invoice_ids->reject($invoiceId); } /** * Check if a child invoice ID exists */ public function hasChildInvoiceId(string $invoiceId): bool { return $this->child_invoice_ids->contains($invoiceId); } /** * Get all child invoice IDs as an array */ public function getChildInvoiceIds(): array { return $this->child_invoice_ids->toArray(); } }