tourze/order-limit-bundle
A Symfony bundle that enforces configurable order limits across your storefront, letting you cap quantities per order, customer, or product. Rules are defined in configuration and integrate cleanly into existing checkout flows for lightweight purchase guardrails.
Bundle suffix and the tourze/* vendor namespace are Symfony conventions, not Laravel ones. Open vendor/tourze/order-limit-bundle/composer.json and check require for symfony/framework-bundle or symfony/dependency-injection. If those are present, this is a Symfony bundle that happens to be installable in a Laravel app — Laravel will not auto-discover a service provider for it, and its DI extension/config tree (order_limit: style keys) won't be loaded.composer require tourze/order-limit-bundle:^1.0.1src/ for the limit-check contract (typically an *Interface plus a checker/validator service) and the tests directory. With a release note that is only a changelog link, the package's own tests are the de facto documentation — read them before reading the source.If the framework check confirms Symfony-only, treat this as a library of domain services rather than a bundle: instantiate the checker yourself and wire it through a small Laravel service provider. Don't fight the bundle's Symfony DI config.
ServiceProvider::register(), bind the package's limit-checker interface to its concrete implementation with your config injected. Keeps call sites testable and lets you swap in a stub in feature tests.FormRequest (withValidator) or a dedicated EnsureOrderLimitNotExceeded middleware on the checkout route, and return a 422 with a machine-readable code. Avoid scattering the check across controllers.count = limit - 1 and both succeed. Either re-verify inside the same DB transaction that inserts the order, or take a lock on the customer/SKU row first.Rule object so it composes with $request->validate([...]) and reports errors in the same shape as the rest of your validation.1.0.1 exactly, read the compare diff yourself (1.0.0...1.0.1) before deploying, and don't assume a patch bump is behavior-neutral in a package this young.config/order-limit.php. You will write the glue: provider, config file, and any casting from Laravel's config array into the package's expected shape.php artisan vendor:publish output — there won't be any. Port the defaults by hand into a Laravel config file.1.1 rename costs you one file, not fifty call sites.How can I help you explore Laravel packages today?