*/ class GenerationCreditTransactionFactory extends Factory { protected $model = GenerationCreditTransaction::class; /** * Define the model's default state. * * @return array */ public function definition(): array { return [ 'user_id' => User::factory(), 'amount' => 1, 'type' => GenerationCreditTransactionType::AD_REWARD, 'source_type' => null, 'source_id' => null, 'idempotency_key' => fake()->uuid(), 'daily_reward_key' => 'ad:'.now()->toDateString(), 'metadata' => null, ]; } public function spend(): static { return $this->state(fn (array $attributes): array => [ 'amount' => -1, 'type' => GenerationCreditTransactionType::GENERATION_SPEND, 'idempotency_key' => null, 'daily_reward_key' => null, ]); } }