# MODEL AUDIT — Phase 4 Student Finance

**Generated:** 2026-09-10 20:21:03  
**Evidence:** Instantiation + fillable inspection + Schema soft-delete columns

## Summary

| Metric | Result |
|--------|--------|
| Finance models audited | **30** |
| Model checks | 60/60 PASS |

## Models

| Model | Table | Fillable attrs | SoftDeletes trait | deleted_at column |
|-------|-------|----------------|-------------------|-------------------|
| FinanceSetting | finance_settings | 13 | Yes | Yes |
| FeeCategory | fee_categories | 8 | Yes | Yes |
| FeeHead | fee_heads | 11 | Yes | Yes |
| FeeTemplate | fee_templates | 9 | Yes | Yes |
| FeeStructure | fee_structures | 17 | Yes | Yes |
| CourseFee | course_fees | 11 | Yes | Yes |
| Discount | discounts | 12 | Yes | Yes |
| Scholarship | scholarships | 13 | Yes | Yes |
| Bursary | bursaries | 10 | Yes | Yes |
| FinanceSponsor | finance_sponsors | 11 | Yes | Yes |
| StudentAccount | student_accounts | 13 | Yes | Yes |
| FinanceInvoice | finance_invoices | 26 | Yes | Yes |
| FinanceInvoiceItem | finance_invoice_items | 8 | Yes | Yes |
| FinancePayment | finance_payments | 19 | Yes | Yes |
| FinancePaymentAllocation | finance_payment_allocations | 5 | No | No |
| FinanceReceipt | finance_receipts | 14 | Yes | Yes |
| FinanceCreditNote | finance_credit_notes | 11 | Yes | Yes |
| FinanceDebitNote | finance_debit_notes | 11 | Yes | Yes |
| FinanceRefund | finance_refunds | 15 | Yes | Yes |
| PaymentPlan | payment_plans | 10 | Yes | Yes |
| PaymentPlanInstallment | payment_plan_installments | 8 | Yes | Yes |
| MinimumPaymentRule | minimum_payment_rules | 13 | Yes | Yes |
| StudentClearance | student_clearances | 11 | Yes | Yes |
| ResultReleaseHold | result_release_holds | 11 | Yes | Yes |
| PaymentTransaction | payment_transactions | 18 | Yes | Yes |
| PaymentWebhook | payment_webhooks | 7 | No | No |
| FinanceWaiver | finance_waivers | 11 | Yes | Yes |
| FinancePenalty | finance_penalties | 10 | Yes | Yes |
| StudentScholarship | student_scholarships | 9 | Yes | Yes |
| FinanceLedgerEntry | finance_ledger_entries | 14 | Yes | Yes |

## Notes

- Invoice/payment/receipt models use enums for status casts.
- Student relations (`accounts`, `invoices`, `payments`) eager-load without error (integration check PASS).

## Verdict

**PASS**