users table for every person who can authenticate — whether that is an internal employee managing the backoffice or someone accessing a portal (customer, partner, client). The distinction between these two groups is made entirely through roles.
Users authenticate via magic link / code — no passwords. They enter their email address and receive a short-lived signed link or code.
System Users
System users appear in the backoffice/users management interface. Core’s User model provides a systemUsers() scope used throughout the platform — by the user table, the activity log filter, and anywhere else that needs to list internal users.
Excluding Roles
ImplementexcludeFromSystemUsers() on your Role enum to declare which roles should be hidden from that view.
app/Enums/Role.php
User::systemUsers() will then return only ADMIN and STAFF users everywhere the scope is applied.
Auto-Registration by Domain
For scenarios where anyone from a given domain should automatically get access — for example, all@company.com employees accessing an internal operations platform, or all @acme.com contacts accessing a client portal — Core supports auto-registration by email domain.
A user from an approved domain who does not yet have an account receives a signed registration link when they attempt to log in. No admin invite required.
Configuration
Map each domain to the role that new users from that domain should receive:config/auth.php
config/auth.php
How It Works
User enters their email
If no account exists but the domain is approved, the registration flow starts automatically.