Как спроектировать многоролевое api на laravel 9?
возьмите https://spatie.be/docs/laravel-permission/v5/intro... и изучите))
0) Оставить одну модель Users
1) Не трогать
2) Не трогать
3) Нет

Используй широко распространенные пакеты и не надо ничего придумывать.  Например этот 
Добавляешь роли guest, user, admin а в пермиссион добавляешь разрешение owner если надо глобально или product_owner если например надо отдавать только свои продукты для роли. Далее добавляешь global scope  с проверкой если есть owner то к запросу добавляешь чтобы только свои показывало.