Immutable Value Objects
"Bag helps you create immutable value objects. It's a great way to encapsulate data within your application. It prioritizes immutability and type safety with built-in validation and data casting.
Bag is framework-agnostic, but it works great with Laravel. Bag uses standard Laravel Collections and Validation. In addition, it will automatically inject
Bag\Bag
value objects into your controllers with validation."
Davey Shafik