belongsTo(Tariff::class); } public function offers() { return $this->hasManyThrough(Offer::class, Tariff::class, 'id', 'tariff_id', 'id', 'id'); } public function sale_channel() { return $this->belongsTo(SaleChannel::class); } public function price_list_values() { return $this->hasMany(PriceListValue::class); } public function scopeByTariff($query, $id) { return $query->where($this->table . '.tariff_id', $id); } public function scopeBySaleChannel($query, $id) { return $query->where($this->table . '.sale_channel_id', $id); } public function scopeByStatus($query, $id) { return $query->where($this->table . '.status_id', $id); } public function scopeActive($query) { return $query->byStatus(0)->has('price_list_values'); } public function scopeByOffer($query, $id) { return $query->whereHas('offers', function ($query) use ($id) { $query->byID($id); }); } }