Yes, this should be very easy with Karate. I suggest you don't over-engineer tests and make 2 requests in your test. Save the response of the first request.
Now all you need to do is perform a match of the first response - that it is equal to the second response.
And because Karate allows you to set some fields of the "expected" JSON as #string or #notnull ...
Here is a tip. Since you know the expected request structure, keep in mind that you can use it almost as-is in Karate. And proper JSON with double-quotes etc. is totally fine. And you can use the multi-line option. So please try this for the request step: