I suggest designing the database first, including all the foreign key relationships, and only after you've done that should you create your DBIx::Class stuff.
To answer your specific question how to design the relationships for role-based authentication, I suggest three tables:
- user
- id, username, password_hash, etc ...
- role
- id, name
- user_role
- user_id, role_id
I'm sure that the meanings of all these field names and the relationships between them are obvious. If it isn't, then you should first read a book on relational databases.