With the release of Laravel 5.1.1 last week the framework gained some nice Authorization features. It provides an easy way to define abilities (aka permissions). Checking if a user has certain abilities is very simple as well. The code powering authorization is a thing of beauty. If you're a Laracasts subscriber let Jeffrey Way guide you through the code. In a later lesson he demonstrates how to add role based authentication.

I've used Jeffrey's code as a base to create a new package called laravel-permission. The package provides an easy way to associate users with roles and permissions.

//adding permissions to a user
$user->givePermissionTo('edit articles');

//adding permissions via a role

$role->givePermissionTo('edit articles');

Saved permissions and roles are also registered with the Illuminate\Auth\Access\Gate-class. So permissions can be checked with Laravel's native can-function.

$user->can('edit articles');

Take a look at the readme on GitHub to see some more examples on how the package can be used.