public function scopeWhereGroup($query, $model, $groupSlug)
{
$groupsPivotTable = config('friendships.tables.fr_groups_pivot');
$friendsPivotTable = config('friendships.tables.fr_pivot');
$groupsAvailable = config('friendships.groups', []);
if ('' !== $groupSlug && isset($groupsAvailable[$groupSlug])) {
$groupId = $groupsAvailable[$groupSlug];
$query->join($groupsPivotTable, function ($join) use($groupsPivotTable, $friendsPivotTable, $groupId, $model) {
$join->on($groupsPivotTable . '.friendship_id', '=', $friendsPivotTable . '.id')->where($groupsPivotTable . '.group_id', '=', $groupId)->where(function ($query) use($groupsPivotTable, $friendsPivotTable, $model) {
$query->where($groupsPivotTable . '.friend_id', '!=', $model->getKey())->where($groupsPivotTable . '.friend_type', '=', $model->getMorphClass());
})->orWhere($groupsPivotTable . '.friend_type', '!=', $model->getMorphClass());
});
}
return $query;
}