PatientPolicy::class, Appointment::class => AppointmentPolicy::class, ]; public function boot(): void { // Gates for invoices Gate::define('view-invoices', [InvoicePolicy::class, 'viewAny']); Gate::define('create-invoices', [InvoicePolicy::class, 'create']); // Gates for ledger Gate::define('view-ledger', [LedgerPolicy::class, 'viewAny']); Gate::define('create-ledger', [LedgerPolicy::class, 'create']); Gate::define('view-reports', [LedgerPolicy::class, 'viewReports']); // Gates for wages Gate::define('view-wages', [WagePolicy::class, 'viewAny']); Gate::define('approve-wages', [WagePolicy::class, 'approve']); // Role-based gates Gate::define('is-admin', fn($user) => $user->role === 'admin'); Gate::define('is-manager', fn($user) => in_array($user->role, ['admin', 'manager'])); Gate::define('is-therapist', fn($user) => $user->role === 'therapist'); Gate::define('is-receptionist', fn($user) => $user->role === 'receptionist'); } }