/**
* Constrain the given users query by the provided permission.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param string $permission
* @param \Illuminate\Database\Eloquent\Model|string|null $model
* @return \Illuminate\Database\Eloquent\Builder
*/
public function constrainUsers($query, $permission, $model = null)
{
return $query->where(function ($query) use($permission, $model) {
$query->whereHas('permissions', $this->getPermissionConstraint($permission, $model));
$query->orWhereHas('roles', $this->getRoleConstraint($permission, $model));
});
}