docs: def _tracked_model_diff(self):
          """Returns changes made to model instance.
          Returns None if no changes were made.
          """
          initial_state = self._tracked_model_initial_state
          current_state = serializer.dump_model(self)
          if current_state == initial_state:
              return None
  
          change_log = {}
          for field in initial_state:
              old_value = initial_state[field][Field.VALUE]
              new_value = current_state[field][Field.VALUE]
              if old_value == new_value:
                  continue
              field_data = initial_state.copy()[field]
              del field_data[Field.VALUE]
              field_data[Field.OLD] = old_value
              field_data[Field.NEW] = new_value
              change_log[field] = field_data
  
          return change_log or None