Skip to main content
Version: 11.x



Factories (are a short name for Model Factories).

Factories are used to generate some fake data with the help of Faker to be used for testing purposes.

Factories are mainly used from Tests.


  • Factories SHOULD be created in the Containers.


  • All Factories MUST extend from App\Ship\Parents\Factories\Factory.

Folder Structure

 - app
- Containers
- {section-name}
- {container-name}
- Data
- Factories
- UserFactory.php
- ...

Code Samples

A User Model Factory

class UserFactory extends Factory
protected $model = User::class;

public function definition(): array
static $password;

return [
'name' => $this->faker->name,
'email' => $this->faker->unique()->safeEmail,
'password' => $password ?: $password = Hash::make('testing-password'),
'email_verified_at' => now(),
'remember_token' => Str::random(10),
'is_admin' => false,

Usage from Tests or Anywhere Else

// creating 4 users
Further reading

More info at Laravel Docs.