1. в beforeSave доставать объект из базы и делать diff проперти _attributes.
2. перегрузить волшебный set метод, и запоминать что менялось, записывая куда-то поле, измененное и старое значение.
Я когда лог смотрел, то обновляться будут только те поля, которые были в setAttributes. В случае с новым созданием записи тут не проблема, но когда идёт обновление записи, то в модели заполнены все поля, но в запросе, только те которые обновляются.