вот что вы могли бы сделать, чтобы получить требуемую функциональность, но это не очень хорошая идея, пожалуйста, прочитайте до конца
Вы можете определить область действия по умолчанию, включив также торговую ассоциацию, а затем заказать по merchants.is_paid DESC, score DESC
будет выглядеть как
default_scope includes(:merchants).order('merchants.is_paid DESC, score DESC')
однако это означает, что каждый раз, когда вы захватываете подобные торговые объекты по любой причине, у вас также будет загружена ассоциация
это не очень хорошо, и я бы предложил иметь явную область для загрузки похожих торговцев с ассоциацией и упорядочением:
scope :with_merchants, includes(:merchants).order(...)
таким образом, вы всегда знаете в своем коде, что именно загружается из базы данных