Oi, Alexandre! Como vai?
Agradeço por compartilhar seu código com a comunidade Alura.
Em sua solução, chamou atenção o uso do spread operator para clonar o array, que deixa o código mais direto e fácil de ler. Do jeito que você explicou, a comparação com o forEach ajuda a entender bem as duas abordagens e quando cada uma pode ser usada.
Uma dica interessante para o futuro é conhecer o método slice(), que também cria uma cópia do array original sem alterá-lo. Veja este exemplo:
const pedidos = ['carro', 'aviao', 'casa'];
const copia = pedidos.slice();
copia.push('iate');
console.log(copia);
Esse código cria uma cópia independente do array original e depois adiciona um novo item apenas na cópia.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!