checked: 340 belongsTo relations
ISSUES:
 - DocumentSignatory::creator() -> User: inferred/explicit FK 'created_by' NOT on 'document_signatories'
 - Invoice::approval() -> InvoiceApproval: inferred/explicit FK 'approval_id' NOT on 'invoices'
 - Message::creator() -> User: inferred/explicit FK 'created_by' NOT on 'messages'
 - MessagePreference::creator() -> User: inferred/explicit FK 'created_by' NOT on 'message_preferences'
 - MessageRouting (table 'message_routings' MISSING): tenant() -> Tenant FK 'tenant_id'
 - MessageRouting (table 'message_routings' MISSING): message() -> Message FK 'message_id'
 - MessageRouting (table 'message_routings' MISSING): deliverer() -> User FK 'created_by'
 - Metric::creator() -> User: inferred/explicit FK 'created_by' NOT on 'metrics'
 - MetricRefreshLog (table 'metric_refresh_logs' MISSING): metric() -> Metric FK 'metric_id'
 - MetricRefreshLog (table 'metric_refresh_logs' MISSING): refresher() -> User FK 'refreshed_by'
 - PatientEducationResponse::router() -> User: inferred/explicit FK 'routed_by' NOT on 'patient_education_responses'
 - Payment::payer() -> Payer: inferred/explicit FK 'payer_id' NOT on 'payments'
 - PayrollItem::creator() -> User: inferred/explicit FK 'created_by' NOT on 'payroll_items'
 - PayrollRun::creator() -> User: inferred/explicit FK 'created_by' NOT on 'payroll_runs'
 - PublicBookingSlot::creator() -> User: inferred/explicit FK 'created_by' NOT on 'public_booking_slots'
 - PublicCareer::creator() -> User: inferred/explicit FK 'created_by' NOT on 'public_careers'
 - PublicClinician::creator() -> User: inferred/explicit FK 'created_by' NOT on 'public_clinicians'
 - Role::creator() -> User: inferred/explicit FK 'created_by' NOT on 'roles'
 - RolePermission::tenant() -> Tenant: inferred/explicit FK 'tenant_id' NOT on 'role_permissions'
 - StockMovement::performer() -> User: inferred/explicit FK 'performed_by' NOT on 'stock_movements'
 - Teleconsultation::clinician() -> User: inferred/explicit FK 'clinician_id' NOT on 'teleconsultations'
