@Transactional
  @Override
  public Long createRole(final RoleCommand command) {

    AppUser currentUser = context.authenticatedUser();

    RoleCommandValidator validator = new RoleCommandValidator(command);
    validator.validateForCreate();

    List<Permission> selectedPermissions =
        assembleListOfSelectedPermissions(command.getPermissions());

    Role entity =
        new Role(
            currentUser.getOrganisation(),
            command.getName(),
            command.getDescription(),
            selectedPermissions);

    this.roleRepository.save(entity);

    return entity.getId();
  }