model Product
есть основная единица измерения Unit
return $this
->belongsTo(Unit::class, 'base_unit', 'id');
model Unit
есть производные единицы
public function units()
{
return $this
->morphedByMany(Unit::class, 'unitable')
->withPivot('multiplier', 'product_id', 'main');
}
отфильтровать товары через belongsTo модель где morphtoMany имеет pivot('main', 1)