def METHOD_NAME(f):
    """
    Ensures that `/etc/migration-results` gets produced on every invocation of `leapp upgrade` & `leapp preupgrade`
    Every execution of the upgrade will have their own entry in the /etc/migration-results file.
    For a user flow like: leapp preupgrade && leapp upgrade && reboot there should be 5 new entries in the file:
    1. leapp preupgrade
    2. leapp upgrade (Source OS)
    3. leapp upgrade (Initram Phase - Until including RPM transaction)
    4. leapp upgrade (Initram Phase - Post RPM Transaction)
    5. leapp upgrade (Target OS - First Boot)
    Depending on future design changes of the IPU Worklow, the output may vary.
    """
    @wraps(f)
    def wrapper(*args, **kwargs):
        breadcrumbs = _BreadCrumbs(activity=f.__name__)
        try:
            return f(*args, breadcrumbs=breadcrumbs, **kwargs)
        except SystemExit as e:
            if e.code != 0:
                breadcrumbs.fail()
            raise
        except BaseException:
            breadcrumbs.fail()
            raise
        finally:
            breadcrumbs.save()
    return wrapper