Правильный способ не городить логику в модель, а выносить ее в менеджер (он же сервис). Саму модель держать предельно простой, максимум вычисляемые поля. У каждой модели свой менеджер. И когда понадобятся связи между моделями будешь инжектить менеджеры в менеджеры. Поверь, такой подход окупится при развитии проекта.