A complete admin panel in days, not months: how we use Laravel 12 and Filament for finance and HR systems
The “boring” back-office systems are what actually run companies: payroll, attendance, permissions, invoices. We built the Smart Lead HR System, Salaries System for daily-rate wages, Electricity System for billing, and R…

The “boring” back-office systems are what actually run companies: payroll, attendance, permissions, invoices. We built the Smart Lead HR System, Salaries System for daily-rate wages, Electricity System for billing, and Retail Sys for network marketing — all on Laravel and Filament. This is the method that makes “days” an honest number.
Rule zero: schema first, then everything is generated from it
We write the schema and rules as the single source of truth, then the admin UI, input validation and API contract are generated from it. When we added a new “attendance allowance” to the payroll system, one place changed, and the field appeared in the panel, the reports and the API the same day.
What Filament gives for free and is worth using
- Resources: tables and forms with filters, search and sorting in minutes.
- Bulk actions: “approve this month’s payroll” for a hundred employees in one click, with confirmation and a log.
- Roles and permissions: a branch manager sees only their branch — a rule written once and applied to every query.
- Bilingual and RTL: ready out of the box, which is what makes the panel usable by a Saudi or Egyptian accountant without training.
What we do not leave to Filament
Business logic lives in an independent domain layer. Filament is a face, not a brain.
Computing a daily wage with overtime, incentives and deductions in Salaries System is a pure, testable service, called from the panel, the API and scheduled jobs. Had we written it inside a Filament form we could neither test it nor reuse it in the employee app.
Patterns that repeated across four systems
- An audit trail for every financial edit: who, what, before, after. Non-negotiable in payroll and billing.
- Month-end close as a state: after closing, records become read-only, and changes go through a documented adjustment.
- Live reports, not nightly ones: in Electricity System a subscriber’s consumption updates in real time from smart meters, and the report is just a query.
- The agent tree as data, not code: in Retail Sys multi-level commissions are computed from a stored tree, so a commission-policy change needs no deployment.
What about AI here?
A small, practical step: an assistant inside the panel that answers the accountant’s “why does this person’s salary differ from last month?” by reading the audit trail and explaining it in Arabic. It changes nothing; it only explains. That alone saved hours of messages between HR and finance.


