Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backend: Livewire Tables
RolesTable
Sets model and primary key explicitly; adds default sort by name.
Adds an empty table message when no rows exist.
Refines columns:
Builder simplified to Role::query()->withCount('users'). Note: the previous ad‑hoc search filter hook was removed; if search is needed, ensure Livewire Tables’ v2 searching is configured accordingly.
UsersTable
Database
New migrations (both additive and reversible):
Existing 2FA and recovery code migrations are present in the tree (Google2FA setup).
Authentication and Security
2FA
Password validation
Timezone handling
Frontend and Blade
Bootstrap 5 migration
Updated Blade templates to Bootstrap 5 standards.
Removed/updated deprecated attributes/classes; normalized markup across views.
Dependency alignment:
Package lockfile format bumped (lockfileVersion 3).
General clean-up for consistency across backend views and shared includes.
Dependencies (Composer)
Behavioral implications and notes
Roles listing UX improvements: sensible default sort, clearer type labels, explicit empty state, cleaner permissions and actions rendering.
Audit logging enhancement: event and batch_uuid on activity_log enable richer reporting and correlation of bulk operations.
2FA stack change: moved to pragmarx/google2fa-laravel; configuration, middleware, and recovery flow should be validated end‑to‑end.
Password policy now uses core Laravel rules; ensure env/config reflect desired strength requirements.
Bootstrap 5 migration:
Livewire Tables v2 adjustments:
Operational checklist
Backend
Frontend
Post‑migration verifications