@alien4u I have made a custom record called line item changelog to record when users add/delete line items or when they change certain fields.
You could do something similar.
1. Have a list of fields you are interested in.
2. In after submit compare the value of each field in newRecord vs in oldRecord
3. Create a custom record instance for each change
In my experience creating custom records is faster than saving or submitting to transactions.