$filters = [ 'author' => function ($query) { }, 'objectdata' => function ($query) { }, 'district' => function ($query) { }, 'preview' => function ($query) { } ]; $objects = Object::with($filters)->where('status', 1); if ($vars['currencySelected'] && $vars['price'] != "") { $objects->whereHas('objectdata', function ($query) use ($vars) { $query->where('price_' . $vars['currencySelected'], "<", $vars['price']); }); } $objects->orderBy('created_at', 'desc')->paginate(10);