I would say start as simple as possible. Its always cheaper to add code than to maintain complexity that probably solves nothing.
I don't see why you wouldn't just store the rest of the roles in the users table like you already do with superadmin and admin. Just use a string column instead of an enum, its much easier to add or remove roles, no need for "alters".
You can still cast the role column to an enum, and then define policies/gates to allow or deny actions, like what you are saying.
If the system eventually gets more complex, users with multiple roles, roles with different permissions, maybe even more auth guards so the user model isnt the only one with roles, you will end up using a battle-tested package anyway, like Spatie's laravel-permission. Until then, like you said, "These are really static roles", sp keep it simple, future you will thank you.