public function findByCycle(Type $cycle, Carbon $since, Carbon $until, $limit = self::EXHIBITIONS_FOR_PAGE) { $dateInterval = [$since, $until]; $builder = Exhibition::where('type_id', $cycle->getId())->whereHas('schedules', function (Builder $query) use($dateInterval) { $query->whereBetween('entry', $dateInterval); }); $exhibitions = $this->addRelationships($builder, $limit); return $exhibitions; }