Requirements
Requirements
From composer.json:
- PHP
^8.4 ext-dom— the live EU TEDB source parses the Commission's SOAP responses withDOMDocument/DOMXPath.ext-zlib— the US boundary indexes are published gzipped (5.4 MB across the 24 SST states instead of 20 MB) and inflated on read.- Laravel
^13(illuminate/contracts,illuminate/support,illuminate/http) cboxdk/laravel-geo^0.5— the canonical jurisdiction reference every assessment binds to.brick/money^0.14— exact integer-minor-unit money for amounts and rate maths.
No migration is required. Rate data is supplied by a TaxRateSource; the default
binding ships representative national rates for out-of-the-box use.
Why Laravel 13 only
A library should install on the current and previous Laravel major, and this one does not. That is a deliberate decision with a specific external cause, not an oversight:
brick/money ^0.14— the exact-money library every amount and rate calculation runs through — requiresbrick/math ~0.15or newer.laravel/framework12.64 capsbrick/mathat^0.11|^0.12|^0.13|^0.14.
The ranges are disjoint, so the two cannot be installed together. Supporting
Laravel 12 would mean pinning brick/money back to ^0.11 — three minors and a
different rounding surface — for a tax engine, where the money library's
behaviour is the calculation. Reach is not worth that trade.
Note that illuminate/support, illuminate/contracts and illuminate/http never
require brick/math themselves; the cap lives in the full framework package, and
only from 12.64 onward. The constraint will be widened to ^12.0 || ^13.0 if a
Laravel 12 patch relaxes it — nothing in this package's own graph prevents it.