When dealing with complex set up, a full roles and permissions mane what you need.
In that type of set up the actual role is not nessesarly important, permissions are. So for each part you want to limit access a user must have a permission assigned.
So you might have 200 plus permissions (exaggerated). In order to keep things sane, you group permissions to a role via pivot table. So a role can have one or many permissions.
You assign a role, possibly more then one but imo not recommended, to a user via pivot table.
This way as you add features you can add permissions but your roles are dynamic. So a subscribed customers can manage access by making new roles and assign permissions to the role and assign that new role to thier users as nessesary.