where('external_order_id',$orderID)->first(); if ($existing) return [$existing, null]; } $plain = LicenseKey::generate(); $license = License::create([ 'license_product_id'=>$product->id, 'license_key_hash'=>LicenseKey::hash($plain), 'license_key_last4'=>substr(LicenseKey::normalize($plain), -4), 'customer_name'=>$name, 'customer_email'=>$email ? strtolower(trim($email)) : null, 'edition'=>$product->edition, 'activation_limit'=>$product->activation_limit, 'max_major_version'=>$product->max_major_version, 'payment_provider'=>$provider, 'external_order_id'=>$orderID, 'external_customer_id'=>$customerID, ]); if ($queueDelivery) { LicenseDeliveryOutbox::updateOrCreate( ['license_id'=>$license->id], ['encrypted_license_key'=>Crypt::encryptString($plain),'recipient_email'=>$license->customer_email,'delivered_at'=>null] ); } return [$license, $plain]; }); } }