Hi,
You can potentially use the variants and the options.
Create a new characteristic with the values (cake 1, cake 2, etc.), then five products with these characteristics.
And finally a main product, and add the five previously created products as options to this product.
That way, when the customer will be on the product page, he will be able to select five different options.
And he will be able to order as many products he wants, with always 5 options in it.
ps: the prices can be set in the products with characteristics.