Весь вопрос звучит как какой-то оверинжиниринг.
0. Без диаграмм вообще поток мыслей сложно понять.
1. Фасад - это не способ легализовать божественный класс.
2. Циклические зависимости - это не всегда смертельно плохо, но всегда очень подозрительно.
3. Не нужно накидывать все паттерны, какие ты знаешь, если только что прочитал какую-то умную книжку или статью. Иногда лучше всё-таки сделать по принципу KISS и YAGNI.
Или мне нужно создать объект PriceConvert и вызвать нужный метод?
Зачем на каждую мелкую операцию делать отдельный класс и создавать постоянно новые объекты?
Просто с одной стороны фасад Payments лежит ниже чем эти классы - это просто точка доступа для контроллеров итд.
Фасад же типа по определению должен быть выше всех, как наиболее высокий уровень абстракции. С чего это вдруг он оказался ниже всех? И что у тебя подразумевается под контроллерами? Обычно контроллерами в вебе называют обработчики http-запросов. Тогда контроллеры должны зависеть от фасада, а не наоборот.
и у них внутренние связи налажены через parent
.
Что это вообще значит?
Payments::priceConvert
Почему вообще платежи отвечают за конвертацию курсов валют? Или что делает priceConvert?