'array', 'new_values' => 'array', ]; public function wallet(): BelongsTo { return $this->belongsTo(Wallet::class); } public function user(): BelongsTo { return $this->belongsTo(User::class); } public static function log( Wallet $wallet, string $action, ?string $description = null, ?array $oldValues = null, ?array $newValues = null, ?User $user = null ): self { return self::create([ 'wallet_id' => $wallet->id, 'user_id' => $user?->id ?? auth()->id(), 'action' => $action, 'description' => $description, 'old_values' => $oldValues, 'new_values' => $newValues, 'ip_address' => request()->ip(), 'user_agent' => request()->userAgent(), ]); } }