Laravel - Getting Started - Replicating Models

You may create an unsaved copy of an existing model instance using the replicate method. This method is particularly useful when you have model instances that share many of the same attributes:

    
    use App\Models\Address;
    
    $shipping = Address::create([
        'type' => 'shipping',
        'line_1' => '123 Example Street',
        'city' => 'Victorville',
        'state' => 'CA',
        'postcode' => '90001',
    ]);
    
    $billing = $shipping->replicate()->fill([
        'type' => 'billing'
    ]);
    
    $billing->save();
	

To exclude one or more attributes from being replicated to the new model, you may pass an array to the replicate method:

    
    $flight = Flight::create([
        'destination' => 'LAX',
        'origin' => 'LHR',
        'last_flown' => '2020-03-04 11:00:00',
        'last_pilot_id' => 747,
    ]);
    
    $flight = $flight->replicate([
        'last_flown',
        'last_pilot_id'
    ]);