First, we need to make two cross-section curves, using InterpCrv command, and with some Osnap help, we will make the curves, like on the image below:
Move the inner control points up by 1 unit. And split the rounded rectangle with the longer curve (you may have to turn off the control points).
Using patch command, create a surface out of cross-section (cross) curves, and one half of rounded rectangle. You can repeat that step for the other side, or just use mirror command. Then join the two surfaces.
Next, from the top view, make a 45 degree line. You might find very useful Ortho option, but on default, it only works with 90 degree lines. So, click right mouse button on Ortho, and click on Settings from the drop down menu. There you will find a Ortho snap every 90 degrees option, where you can set 45…
I copied the line with Copy command, and I made the lines apart 2.5 units. Check the image below:
You can mirror those lines, and position them like this:
Now, having selected those lines, select the cushion surface too, and use Project command, so your lines project onto the surface. Then you can delete the source lines.
Then, create in your top viewport a circle with diameter of 1.3 units. Next, in your front viewport, create a curve like this:
Using Revolve command, revolve that curve around its far right axis, to create something like this:
With OrientSrf command (with copy option turned on) position this pin on the intersections of projected lines. It will be very helpful if you had only Int option turned on in your Osnap.
And we are done!