columnSpan(3); } public function type(DocumentType | string $type): static { if (is_string($type)) { $type = DocumentType::from($type); } $this->documentType = $type; return $this; } public function getType(): DocumentType { return $this->documentType; } public function getTemplate(): Template { if ($this->documentType === DocumentType::RecurringInvoice) { $lookupType = DocumentType::Invoice; } else { $lookupType = $this->documentType; } $defaults = DocumentDefault::query() ->type($lookupType) ->first(); return $defaults?->template ?? Template::Default; } }