Cushions are usually modeled with NURBS(don't ask me how though). If you want to go with polys you can probably do something like that (only problem will be improvising an edge flow for the intersection between the circles):
When in doubt, delete history and freeze transformations.
My latest snake game
(Requires DirectX9 SDK and Framework)