*/ public function definition(): array { return [ 'name' => $this->faker->unique()->company(), 'user_id' => User::factory(), 'personal_company' => true, ]; } public function withCompanyProfile(): self { return $this->afterCreating(function (Company $company) { CompanyProfile::factory()->forCompany($company)->create(); }); } /** * Set up default settings for the company after creation. */ public function withCompanyDefaults(): self { return $this->afterCreating(function (Company $company) { DB::transaction(function () use ($company) { $countryCode = $company->profile->country; $companyDefaultService = app(CompanyDefaultService::class); $companyDefaultService->createCompanyDefaults($company, $company->owner, 'USD', $countryCode, 'en'); }); }); } public function withTransactions(int $count = 2000): self { return $this->afterCreating(function (Company $company) use ($count) { $defaultBankAccount = $company->default->bankAccount; TransactionFactory::new() ->forCompanyAndBankAccount($company, $defaultBankAccount) ->count($count) ->createQuietly([ 'created_by' => $company->user_id, 'updated_by' => $company->user_id, ]); }); } }