Разделить сущность на несколько мелких сущностей не получится.
Это тебе только так кажется.
Пора открывать для себя ООП, а конкретно - такие понятия как композиция и агрегация.
Сущность, у которой все свойств 20 задаются через конструктор - это уже большой красный звонок.
Если ты посмотришь внимательно, то эти свойства прекрасно группируются по какому-либо признаку, и некоторые из них могут принадлежать другому, служебному классу.
Сгруппировав параметры таким образом, ты не только уменьшишь количество параметров, но и сделаешь небольшой шажок к нормальному коду от классического спагетти
Вот очень хороший доклад от
Дмитрия Елисеева (который, на мой взгляд, является на данный момент лучшим в России популяризатором ООП в РНР). Видео стоит посмотреть целиком, но конкретный ответ на твой вопрос начинается на 27 минуте:
https://youtu.be/6tL1XOywgUc?t=1653