Добрый день.
Необходимо спрятать весьма много комплексных запросов к базе в простые методы модели. Касается многих моделей, поэтому вариантов создавать query builder под каждую - нет.
Пример.
public function available() {
return $this->where('id', 1)
}
public function withSomeMore($l) {
return $this->whereHas('smth', function ($q) use($l) {
$q->where('q', 1);
}
}
// Вызов функции
$model->available()->withSomeMore()->get();
Каким образом можно реализовать подобный функционал? Данная чертовщина не проходит, так как вызов метода where, whereHas и любого другого вернет QueryBuilder.