Какой-то старый код здесь, который может помочь. Пришлось выкопать его из git, через пару лет удалил go, так как больше не нужен проекту. Может быть устаревшим!
Вы загружаете группу и используете функцию $ group-> addMember (). Я только что добавил члена, но вы можете добавить второй параметр, который является ассоциативным массивом, который может указывать роли, к которым нужно добавить.
$new_user = \Drupal\user\Entity\User::load($some_user_id);
// Get the group entity.
$gid = $form_state->getValue('gid');
$group = \Drupal::entityTypeManager()
->getStorage('group')
->load($gid);
// Add user as a member of the group.
$group->addMember($new_user);
// Set the owner of the group to be the user.
$group->set('uid', $new_user_id);
// Save changes to group. Anything below here should only be changes to
// Group Content.
$group->save();
$tags = $group->getCacheTagsToInvalidate();
Cache::invalidateTags($tags);