haveSimpleProduct(); $order = $I->have(OrderItem::class, ['product_id' => $product->id])->order; $I->have(OrderAddress::class, $this->generateAddressData($I, [ 'order_id' => $order->id, 'address_type' => OrderAddress::ADDRESS_TYPE_SHIPPING, 'customer_id' => $order->customer->id, ])); $I->have(OrderAddress::class, $this->generateAddressData($I, [ 'order_id' => $order->id, 'address_type' => OrderAddress::ADDRESS_TYPE_BILLING, 'customer_id' => $order->customer->id, ])); $I->have(OrderPayment::class, [ 'method' => 'cashondelivery', 'method_title' => null, 'order_id' => $order->id, ]); return $order; } protected function generateAddressData(ApiTester $I, array $additionalData): array { $faker = $I->fake(); return array_merge([ 'city' => $faker->city, 'company_name' => $faker->company, 'country' => $faker->countryCode, 'email' => $faker->email, 'first_name' => $faker->firstName, 'last_name' => $faker->lastName, 'phone' => $faker->phoneNumber, 'postcode' => $faker->postcode, 'state' => $faker->state, ], $additionalData); } }