Assuming the 'private' field is on your collection_members table then setup a pivot field using 'private' and then search by the pivot
$this->belongsToMany('ManiacTwister\Models\Collection', 'collection_members')
->orWherePivot('private','0');
or you could
$this->belongsToMany('ManiacTwister\Models\Collection', 'collection_members')
->orWhere("collection_members.private", "=", 0);
Both should work the first one is table agnostic (i.e. it links to the model) but the second one will be faster