Из вашего запроса видно что ларавел корректно составил Sql выражение для вашего кода. если данные не сортируются по вычисляемому полю listings_count то возможно проблема в БД которую вы используете, упростите запрос до
$query->leftJoin("listings","listings.user_id","=","users.id");
return $query
->selectRaw('users.*, count(listings.id) AS `listings_count`')
->groupBy("users.id")
->orderBy('listings_count', 'DESC');
и проверьте результат
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
и проверьте результат