¿Cómo desarmar (eliminar) un elemento de colección después de recuperarlo?

Tengo una colección que quiero iterar y modificar mientras busco algunos de sus elementos. Pero no pude encontrar una manera o método para eliminar ese elemento recuperado.

$selected = []; 
foreach ($collection as $key => $value) {
      if ($collection->selected == true) {
          $selected[] = $value;
          unset($value);
      }
}

Esto es solo una representación de mi pregunta para demostración.

Después de que @Ohgodwhy propusiera la función forget (), la verifiqué nuevamente y vi que realmente no entendía la función. Era exactamente lo que estaba buscando. Después de agregar "$ collection-> forget ($ key)" dentro de la declaración if como la demostración a continuación, funcionó.

$selected = []; 
foreach ($collection as $key => $value) {
      if ($collection->selected == true) {
          $selected[] = $value;
          $collection->forget($key);
      }
}

(esto es solo una demostración)

Respuestas a la pregunta(2)

Su respuesta a la pregunta