1. Bayilere özel alanlar çok değilse users tablosunda halledin gitsin, ekstradan bir kaç alan sorun olmaz.
2. Sadece normal kullanıcı ve bayi olacaksa user_role alanı da yeterli
3. Ayrı modele gerek yok ama bir tane bayiler için scope hazırlasanız yeterli olur:
public function scopeBayi($query)
{
return $query->where('user_role',1);
}
4. Ayrı bir controller gerekli olup olmayacağı nasıl bir proje yaptığınıza bağlı. İhtiyacınız olursa, karışıklığı engelleyecekse, bir ton if else den kurtaracaksa elbette ayrı bir controller, view vs uygun olacaktır.
5. Rota için de bayiler ve normal kullanıcılar için grup oluşturabilirsiniz. Rol ayrımı için bir middleware. Yani projeniz belirleyecek bunu.