'integer', 'cleared_at' => 'datetime', 'meta' => 'array', ]; } protected static function booted(): void { static::creating(function (FinancialObligation $obligation) { if (! $obligation->uuid) { $obligation->uuid = (string) Str::uuid(); } }); } public function getRouteKeyName(): string { return 'uuid'; } public function visit(): BelongsTo { return $this->belongsTo(Visit::class, 'visit_id'); } public function organization(): BelongsTo { return $this->belongsTo(Organization::class, 'organization_id'); } public function branch(): BelongsTo { return $this->belongsTo(Branch::class, 'branch_id'); } public function patient(): BelongsTo { return $this->belongsTo(Patient::class, 'patient_id'); } public function stage(): BelongsTo { return $this->belongsTo(WorkflowStage::class, 'workflow_stage_id'); } public function bill(): BelongsTo { return $this->belongsTo(Bill::class, 'bill_id'); } public function isCleared(): bool { return in_array($this->status, self::CLEARED_STATUSES, true); } }