private static function create(FingerPrint $fingerPrint, $id, DateTime $date, $email, $totalItems, $totalOrder, $quantityInstallments, $ip, $origin, CustomerBillingData $customerBillingData, CustomerShippingData $shippingData, Payment $payment, Item $item, Passenger $passenger = null, Connection $connection = null, HotelReservation $hotelReservation = null) { $instance = new self(); $instance->setFingerPrint($fingerPrint); $instance->setId($id); $instance->setDate($date); $instance->setEmail($email); $instance->setTotalItems($totalItems); $instance->setTotalOrder($totalOrder); $instance->setQuantityInstallments($quantityInstallments); $instance->setIp($ip); $instance->setOrigin($origin); $instance->setBillingData($customerBillingData); $instance->setShippingData($shippingData); $instance->addPayment($payment); $instance->addItem($item); if (null !== $passenger) { $instance->addPassenger($passenger); } if (null !== $connection) { $instance->addConnection($connection); } if (null !== $hotelReservation) { $instance->addHotelReservation($hotelReservation); } return $instance; }