Workflow - Versioning of objects

I am having troubles in setting up approval workflow for changes in data objects and I am not sure if it is my misunderstanding of how it works in Pimcore or there is some bug.

The goal is to have an object in published state. When the user makes changes to some fields, thoat change can be sent for approval. It will create new unpublished version with those changes. Data steward can then open the object and can approve the change (which will publish the new version) or reject it, which would keep the published version active and would make it the latest one again.

  1. If the user makes some changes in UI and directly does a workflow transition (Send for Approval), the changes are not propagated in the transition event.
    First it needs to be saved as new version and only then the user must do the workflow action - this is quite confusing for the users.
    Is there a way to get new state with changes when the transition gets triggered or to force save before the transition?

  2. With each transition there is a new version created and published (using no_change configuration, force_publish and force_unpublish works on whole object, not versions). This makes above impossible to do.

How would you go about this use case in Pimcore?
Is above (first save then do action + transition creating new versions) the intended functionality?