Since there is no unallocated memory available at present, I need to first create some unallocated memory from of one the partitions (/dev/nvme0n1p3, /dev/nvme0m1p4, /dev/nvme0n1p5, /dev/nvme0n1p8). Then, I need to make that memory available either at the beginning or end of the root partition (/dev/nvme0n1p7). After that, I have to extend / resize the root partition (as it is almost full).

Now, how to perform all of the operations without losing any of the data or formatting whole system?