I would modify the behavior here in a few ways:

1. Create a single role membership
2. Reference the role by value instead of ID
3. Use a more generic name, `add_to_role`

The first change is just for maximum generality, and the second is for performance. If the role has already been fetched, we don't want to have to fetch it again. The third is just for aesthetics. This leaves us with something like:

```ruby
def add_to_roles(roles)
  roles.each { |role| add_to_role(role) }
end

def add_to_role(role)
  role.create_membership(user: self, token: token) unless has_role? role
end
```

I've included the `add_to_roles` function to preserve the "multi-add" functionality of the original method. Thoughts?