I'm using Laravel 4's Eloquent to make three different models: a User model, an Agent model, and a Performer model. Any user can sign up as a normal user, or can pay to become an Agent OR a Performer. Because both Agents and Performers have special profiles, I've created separate tables for both Performers and Agents that will contain their profiles, and just a user "type" in the Users table, which indicates whether they're a normal user, a Performer, or an Agent.
This means that the User model will have a has_one relationship with both Performer and Agent. Because a user will only ever be one of those, I'm wondering if it's possible to have the User model only relate to one of those (or none) depending on what type the user is?
I have a strong feeling that I'm going about this the wrong way. Should I relate the User model to both and just check before I use the relationships (which seemed obvious at first, but not quite the right approach either)? Is there a better way to do this?
EDIT: I specified above that the user might not be either of those but just a normal user, however it seems I was too vague: so, if a user hasn't paid to become either an agent or a performer, they'll just be a normal user. Is the best strategy in that case to just manually fill in "user" for the userable_type
column and check to make sure it's not equal to "user" before I do $user->userable
?