Есть таблица сервисы и оплата сервиса, нужно найти все сервисы которые подходят под параметры, а затем из этих сервисов отобрать только те, которые осуществили оплату.
$services = \DB::table('services_to')
->whereRaw('json_contains(categoriesId, \''.$categoryId.'\')')
->where('active', '=', 'Y')
->where('moderate', '=', 'Y')
->leftJoin('services_pay', function ($join)
{
$join->on('services_pay.service_id', '=', 'services_to.id')
->where('pay_date', '<', strtotime(date('Y-m-d H:i:s')))
->where('finish_date', '>', strtotime(date('Y-m-d H:i:s')));
})
->take(20)
->get();
Вот такой запрос делаю, а он все условия where в join тянет