Filament checks view before edit for row URL. Added a shared
ViewRecord base that redirects to edit if canEdit() is true,
so admins and managers get the editable form directly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- canView() + canViewAny() in EnforcesRoles: all SMS roles can view
- View pages for all 7 resources so viewers can open records read-only
- Custom ActivityResource restricts activity log to admin + manager only
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>