def METHOD_NAME(self, **kwds):
    """Helper to record object activity to the relevant history log.
    For readability at call sites, only accepts keyword arguments:
    *service* - service used to trigger the activity (required)
    *field* - which field was affected by the activity (required)
    *action* - what activity occurred (default is "Changed")
    *old* - field value before the activity (if applicable)
    *new* - field value before the activity (if applicable)
    *user* - user responsible for activity (if applicable)
    The default action is "Changed".
    Activities where the old and new values are the same are permitted
    """
    # This trick of using an inner functions lets us force the use of
    # keyword arguments without needing to do our own argument parsing
    return self._record_activity_inner(**kwds)