Begin refactoring 'admin', 'manager' and 'diver' out of application code 

Avoiding hard coding sentinel values like 'admin', 'manager', or 'diver' throughout your code. If, at some point in the future, you need to change the value of one of these sentinel values, you only want to make the change in one place.

As current usage stands, you must make change in numerous places in the application as well as the database.

I also add factories and specs to demonstrate how to test abilities which depend on those sentinel values.