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
    ) {
        $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 );
        }

        return $instance;
    }
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
    ) {
        $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 );
        }

        return $instance;
    }
@param  \RodrigoPedra\ClearSaleID\Entity\Request\FingerPrint          $fingerPrint
@param  int                                                           $id
@param  \DateTime                                                     $date
@param  string                                                        $email
@param  float                                                         $totalItems
@param  float                                                         $totalOrder
@param  int                                                           $quantityInstallments
@param  string                                                        $ip
@param  string                                                        $origin
@param  \RodrigoPedra\ClearSaleID\Entity\Request\CustomerBillingData  $customerBillingData
@param  \RodrigoPedra\ClearSaleID\Entity\Request\CustomerShippingData $shippingData
@param  \RodrigoPedra\ClearSaleID\Entity\Request\Payment              $payment
@param  \RodrigoPedra\ClearSaleID\Entity\Request\Item                 $item
@param  \RodrigoPedra\ClearSaleID\Entity\Request\Passenger|null       $passenger
@param  \RodrigoPedra\ClearSaleID\Entity\Request\Connection|null      $connection

@return \RodrigoPedra\ClearSaleID\Entity\Request\Order