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