Acho que teu problema no projeto inicial era a arquitetura/design do seu código!

Por isso vc mesmo se perdeu nele!

Rails como um framework pronto, já tem tudo opinado é só seguir que a coisa anda bem! Lavaravel em PHP faz a mesma coisa! Tudo opinado.

Agora se quiser fazer algo do zero. Esses dias li sobre um tipo de arquitetura diferente! Que achei intuitiva!

Veja se gosta:

Clean vertical sliced architecture: a união dos 2 mundos

Use cases aninhados Abraços