А
кейс.
к примеру при апдейте model1 обсервер ловит событие и создает model2 (для простоты, не суть важно какая там логика и какие события)
с одной стороны мы считаем что эти события должны быть между собой всегда связаны и обсервер на 100% справляется со своими задачами.
с другой стороны поведение обсервера не очевидно (как и его наличие) при model1->update(); пока ты не найдешь обсервер и не посмотришь а что он ловит и как себя ведет.
собственно вопрос. а что лучше?
1) использование обсервера, так как представленные аргументы ниочем и вообще я ошибаюсь
2) использование кастомного класса, который берет на себя реализацию model1->update(): + Model2::create(); и апдейт делать через него.
3) для Model1 завести функцию "updateWithSomthingElse" и вместо update вызывать ее
4) "настоящий правильный вариант"