*/ use HasFactory, HasUlids; protected $fillable = [ 'user_id', 'custom_data', 'status', 'reward_date', 'expires_at', 'rewarded_at', 'ad_unit_id', 'admob_transaction_id', 'reward_amount', 'reward_item', 'callback_payload', ]; protected $attributes = [ 'status' => RewardedAdSessionStatus::CREATED->value, ]; public function user(): BelongsTo { return $this->belongsTo(User::class); } public function creditTransactions(): MorphMany { return $this->morphMany(GenerationCreditTransaction::class, 'source'); } protected function casts(): array { return [ 'status' => RewardedAdSessionStatus::class, 'reward_date' => 'immutable_date', 'expires_at' => 'datetime', 'rewarded_at' => 'datetime', 'reward_amount' => 'integer', 'callback_payload' => 'array', ]; } }