User in this context would be too generic. In the domain-specific language of
this application, the people with credit cards are referred to as “brand
managers”.

Why not name the model BrandManager?

In this case, User is overloaded to handle three different roles using simple
flags on the model. This allows us to use
Clearance normally and keeps
authentication and standard user vocabulary available where it makes sense.

In this example, the object plays two different roles depending on to whom it
is being displayed. The object is an offer to recipients but its Role
Suggesting
Name
is campaign to advertisers and impressions.

If you enjoyed this post, you might also like:

Want to level up your testing game?
Learn about testing Rails applications and TDD
in our new book
Testing Rails.
The book covers each type of test in depth,
intermediate testing concepts,
and anti-patterns that trip up even intermediate developers.