It would be similar to a pivot table but I wouldn't actually call it that. I'd call it a Roles table and use an auto-increment and include my extra fields and my foreign keys. Three tables: Movies, Roles, People.
Table Movies
increment id;
string title;
string summary;
integer rating;
timestamp release_date;
Table People
increment id;
string name;
timestamp date;
Table Roles
increment id
integer movie_id
integer person_id
string position; // Director, Producer, Actor, Crew, Etc...
string character_name default '';
foreign movie_id -> movie.id
foreign person_id -> people.id
Your Movies would have many Roles. Your People would have many Roles. Each Role belongs to a Person. Each Role belongs to a Movie. This will probably require an extra query to retrieve the People on the Movie's Show view. Or Movies on a Person's Show view.
You should be able to use a HasManyThrough Relationship.
http://laravel.com/docs/5.1/eloquent-relationships#has-many-through
class Movie extends Model
{
/**
* Get all of the posts for the country.
*/
public function people()
{
return $this->hasManyThrough('App\Person', 'App\Role');
}
}