*/ public $positions = []; public function definition(): array { return [ 'to' => ReceiverRequestFactory::new(), 'greeting' => 'Hallo Familie', 'status' => InvoiceStatus::NEW->value, 'via' => BillKind::EMAIL->value, 'positions' => [], 'usage' => $this->faker->words(4, true), ]; } public function to(ReceiverRequestFactory $to): self { return $this->state(['to' => $to]); } public function status(InvoiceStatus $status): self { return $this->state(['status' => $status->value]); } public function position(InvoicePositionRequestFactory $factory): self { $this->positions[] = $factory; return $this; } public function create(array $attributes = []): array { return parent::create([ 'positions' => array_map(fn ($position) => $position->create(), $this->positions), ...$attributes, ]); } public function via(BillKind $via): self { return $this->state(['via' => $via->value]); } }