I have 3 tables; users, groups and permissions
In models I have the relationships set as belongsToMany in user model:
public function groups() {
This is how you can do it:
User::where('id', $id)->with(['groups.permissions' => function ($q) use (&$permissions) { $permissions = $q->get()->unique(); }])->first(); // then $permissions; // collection of unique permissions of the user with id = $id