Roles define what users are allowed to do within your app. Each role can be assigned permissions to use the models of you app. The permissions include Create, Read, Update and Delete (CRUD) operations. The role can then be given to users, giving them the permissions defined by the role.

For example, in a video sharing app, all users should be able to upload videos, but only specific users (the moderators) would be able to delete videos. This step allows you to define multiple roles and declare what each role is allowed to do with each model.