Welcome to the community. Yes it is possible to achieve what you wish but it can vary in complexity proportionate to the distribution you are using... You might find it easier to backup your /home/username directory and then have a separate list of all software you have installed.
Case study: I have made my own Manjaro based OS (mCOLe) but it is NOT practical for me to make an ISO backup of my desktop considering the rapid development and updates my parent OS undergoes. Therefore... I have a list of all packages and custom builds on a backup drive, Whenever I wish to move my installation to another machine, a copy of my "/home/spatry" directory gets copied to an external drive.... THEN:
- I install the new Manjaro on the other computer
- I install the software from my list (add repos (PPA) or in my case AUR packs)
- after installation completes, I copy backed up /home to the new installation
- once home is restored, your new installation will have all of your user preferences from the old machine and it will be as though you just moved your OS from one machine to another... the /home directory holds ALL settings for your software... and changes you made to / prior to moving your installation must also be manually moved by you to the new root.
This is probably not the answer you were looking for but this is the methodology which works best for me. I have performed this method on countless occasions and it is far more ideal to do it this way rather than to make an ISO image.... UNLESS... you are considering mass deployment in a work center...
I will be interested to see what others will add to this thread... my morning coffee has not kicked in yet so there is something I may have forgotten to mention.