This is pretty easy to do
Create a unique DIALPLAN INJECTION for each option in your IVR.
(refer to http://randomcontributions.blogspot.com/2020/03/dialplan-injection-asterisk.html for information on how to create it)
Configure your IVR entries to each go to their respective injection, each will write the code to the CDR table, and then continue to their proper destination.
Put THIS code into the dialplan injection. This will write to the CDR table what they pressed.
Set(CDR(userfield)=${IVR_DIGIT_PRESSED})
Then set the destination for each injection to be the destination that you want.
Once you have this in, each entry will be recorded in the "USERFIELD" of the CDR table.