It seems like you've the "display name" for lack of a better term, which can be duplicated, and then internal name, which must be unique. If you set the `Group.name` field to a uuid, and just leave it that way, then you don't need the extra save. What does using the "id: display_name" format for the group name get you?

Also, it might make sense to prefix the `Group.name` field with something to indicate that it's one of your nested groups (as opposed to any of the other types of group that also use the `Group` table as a backend, such as per-table authentication, or staff/instructor permissions).