morphMany(ApprovalChain::class, 'approvable'); } public function latestApprovalChain(): ?ApprovalChain { return $this->approvalChains()->latest()->first(); } public function isApproved(): bool { $chain = $this->latestApprovalChain(); return $chain && $chain->status->value === 'approved'; } public function isPendingApproval(): bool { $chain = $this->latestApprovalChain(); return $chain && in_array($chain->status->value, ['pending', 'in_review']); } }