Recursively resolve all permissions for this permission set and its children.
Given the recursive nature of this method, using the permission mapping with the cache prevents
a significant number of additional database queries vs doing self.permissions.all() here
Returns:
A set of permission ids representing all permissions available if an actor is associated with this
permissionset.