Laravel Eloquent ORM replicate

Tengo un problema con replicar uno de mis modelos con todas las relaciones.

La estructura de la base de datos es la siguiente:

Table1: products
id
name

Table2: product_options
id
product_id
option

Table3: categories
id
name

Pivot table: product_categories
product_id
category_id

Las relaciones son:

El producto tiene muchas opciones de productoel producto pertenece a muchas categorías (a través de las categorías de productos)

Me gustaría clonar un producto con todas las relaciones. Actualmente aquí está mi código:

$product = Product::with('options')->find($id);
$new_product = $product->replicate();
$new_product->push();
foreach($product->options as $option){
    $new_option = $option->replicate();
    $new_option->product_id = $new_product->id;
    $new_option->push();
}

Pero esto no funciona (las relaciones no están clonadas, actualmente solo intenté clonar las opciones_producto).