I have not used them packages, but have setup a roles/permissions similar using Spatie's package, but had to do it myself.
From what I have seen, these packages generally give you the ability to create/assign roles/permissions, but how you use them is up to you.
All of my actions are controlled by permissions, which are assigned to roles, but I have a 'role level' to indicate the level a user must be at to be able to assign a role/permissions to another user, so something similar to that could be used.
So, if you assigned a level to each of the roles, then you could say any users wholes maximum role <= Auth Users max role (if they can be assigned more than one role).
With my levels, I made sure to leave large gaps inbetween, in case any more levels needs to be added between