Eu faria uma outra abordagem:
Uma tabela users_roles poderia ter papéis vinculados ou não a empresas.
Ex.:
o usuário pode ser gerente na empresa 1
o dono pode ter permissão admin nas empresas 1, 2 e 3.
o suporte teria permissão de suporte em todas as empresas. poderia ser null no lugar da empresa.
Users
id: uuid
name: string
Roles
id: uuid
name: string
requires_business_id: boolean
Business
id: uuid
name: string
users_roles
id: uuid
user_id: uuid
role_id: uuid
business_id: uuid <-- não obrigatório
is_active: boolean
Dessa forma, você permitiria que o mesmo usuário tivesse n papéis em cada empresa. Inclusive, se um dia quiserem colocar um suporte que seja específico somente de 2 empresas, ou um gerente que possa visualizar 3 empresas, é possível com essa modelagem. Poderia deixar o business_id não obrigatório para que seja considerado como "todos". Quando o roles tiver o requires_business_id, então aquele perfil exige que seja informado uma empresa.
Essa modelagem é usada nos meus sistemas seguindo a mesma ideia, onde o mesmo usuário pode ser gerente de uma loja e atendente da outra, por exemplo. E os papéis de dev, admin e suporte são de toodos, então não precisaria informar uma loja.