Laravel.io

class Product extends Model 
{
    protected $fillable = ['title', 'description', 'price'];

    public function shipping()
    {
        return $this->hasMany(Shipping::class);
    }
    public function user_shipping()
    {
        //todo: Нужно реализовать этот метод
    }
}

class Shipping extends Model 
{
	
    protected $fillable = ['product_id', 'title', 'description', 'price'];

    //В данной модели ОБЯЗАТЕЛЬНО должно быть поле `product_id`, так как нужно создавать доставку для каждого товара. Это обязательное условие, это связано с особенностью нашего сервиса

}


// Есть еще таблица без модели `users_shipping` c полями `shipping_id`, `user_id`, `price`.
// Смысл этой таблицы заключается в том, что для некоторых пользователей можно задать кастомную цену доставки.

// В интерфейсе пользователя нужно выбрать все товары и все возможные доставки и их цены, и если для какой-то доставки есть кастомная цена - вывести ее. Для этого и нужна сзять user_shipping
// Для админки уже реализован метод shipping(), который получаем доставки товаров без учета кастомных цен для пользователей

Please note that all pasted data is publicly available.