@founderstartup something like
$brokers = User::when($city, function ($query) use ($city) {$query->where('city', $city);})
->when($locality, function ($query) use ($locality) {$query->where('locality', $locality);})
->when($market, function ($query) use ($market) {
$query->whereHas(
'MarketCategoryTransactions.MarketCategory',
function ($query) use ($market) { return $query->whereIn('market_id', $market); }
);
})
->where('status', 1)
->paginate(10)
->withQueryString();
maybe contains some mistakes (because I don't know your fields), but at least it should give you an idea