ozankurt/laravel-modules-interactions
A Laravel package for wiring interactions between application modules, letting separate modules communicate and respond to one another without tight coupling. Useful for modular projects that need clean, event-style cross-module hooks.
DB::raw('count + (n)') with the query builder's increment()/decrement(). That is exactly the class of code a team would otherwise hand-roll per model, and get subtly wrong under concurrency. The package's value proposition is "atomic, correct counter deltas plus Filament surfacing plus module wiring" — keep buying while that stays true.^3.0 || ^4.0 || ^5.0 all verified against Laravel 13 in CI means the admin surface can move on its own cadence without being coupled to the Laravel upgrade. If we have Filament 3 screens today, we are not forced into a Filament 4/5 migration to get Laravel 13 support.Connection::raw() typing removes a raw-SQL interpolation pattern from the codebase. That is a small but real reduction in review surface — worth citing in any security or static-analysis discussion rather than treating as an internal refactor.ozankurt/laravel-modules-core ^2.0 requirement ties this upgrade to that package's v2 line. If our architecture uses modules, that is a coordinated two-package upgrade decision, not a single bump.Adopt (or upgrade to v2.0.0) when all of the following hold:
ozankurt/laravel-modules-core ^2.0, or you are prepared to adopt it.Look elsewhere, or stay on the 1.x line, when:
increment() calls is cheaper than a dependency.laravel-modules-core plus this package) with a hard-coupled major version pairing — weigh that against your appetite for coordinating majors twice.For executives: This is a maintenance release dressed as a major — the version number moved because the platform floor moved (Laravel 12 → 13, PHP 8.3 → 8.4), not because the product changed. There is no application-facing API change, no data migration, and no user-visible behaviour change; the generated SQL is explicitly unchanged. The upgrade cost is a composer constraint bump plus making sure the host application is already on Laravel 13 and PHP 8.4. The upside is that we stay on supported platform versions and remove a raw-SQL string-interpolation pattern from the codebase in favour of the query builder's typed increment()/decrement(). The one real dependency to manage is ozankurt/laravel-modules-core ^2.0 — this upgrade and that one move together, so sequence them in the same ticket.
For engineering: Treat this as a platform-requirements major. Bump to ^2.0, confirm PHP 8.4 and Laravel 13 in composer.json and CI, and confirm laravel-modules-core is on ^2.0 in the same change — a partial bump will fail resolution. The counter internals changed from an interpolated DB::raw('count + (n)') to the query builder's increment()/decrement(), driven by Laravel 13 narrowing Connection::raw() to float|int|literal-string. Behaviour and emitted SQL are unchanged, so existing tests asserting on results should pass untouched; if you have tests asserting on raw SQL text, check them. Test tooling moves to Pest 5 and Testbench 11, and the CI matrix now covers Filament 3, 4 and 5 against Laravel 13 — meaning your Filament major is not gated by this upgrade. No config publishing, no migrations, no deprecation shims to chase.
How can I help you explore Laravel packages today?