ulasdb Sıkıntıyı neden yaşadığınızı bilmiyorum ama yaşadığınız sıkıntı Eloquent'in primary key'i hala integer olarak görmesi ama kullanırken değil getirirken. Kullanırken olsaydı zaten sonuç alamazdınız, sonuç alıyorsunuz, sorgu çalışıyor ama integer olarak basmaya çalışıyor, tip çevirimi meydana geldiği için string'in integer karşılığını alıyorsunuz. Aklıma gelen $casts içerisine id alanını string olarak tanımlamak. Yani uuid kullanan modellerin hepsinde şöyle olacak (primary key adı id farzediyorum):
protected $keyType = 'string';
public $incrementing = false;
protected $casts = [
'id' => 'string',
];
böyle bir deneyin isterseniz.
Normal şartlarda pivot tabloda bir id sütununa ihtiyacınız olmaz çünkü üzerinde id kullanarak işlem yapmazsınız. product_id ve byproduct_id unique olması gerekir diye düşünüyorum yani product_id:1 ve byproduct_id:2 olan satırdan iki tane olamaz. Tabi tabloyu kullanma amacınıza göre de değişir. Eğer dediğim gibi ise product ya da byproduct üzerinden yola çıkıp belongsToMany ilişkisi üzerinden where('product_id') ya da where('byproduct_id') ve first() ile ilgili satırı alırsınız.