Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Legal Entity Laravel Package

amethyst/legal-entity

A Laravel package for managing legal entities, offering structured models and migrations for companies, addresses, registrations, and related business data. A clean, extensible foundation for apps that need to store and organize organizational records.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. amethyst/legal-entity is not a Laravel package in any meaningful sense — it is a framework-agnostic domain aggregate from the Amethyst ecosystem. Its natural role in a Laravel codebase is a typed DTO / domain model for company and organisation records (legal name, registration identifiers, addresses, entity type) that sits between ingestion and persistence. It composes with amethyst/aggregate, amethyst/model, and amethyst/serializer rather than with Eloquent, so it will not replace your models, migrations, or validation layer. Fit is therefore conditional: it is a reasonable shape for KYB/onboarding/registry-ingestion domains, and a poor fit for teams expecting a drop-in Laravel component with config publishing, facade bindings, and Artisan tooling. If the rest of the stack is not already Amethyst-based, this package arrives as an isolated dependency with no surrounding ecosystem to justify it.

Integration feasibility. Technically trivial to install (Composer, MIT, no native extensions) and technically awkward to adopt. Expect no service provider, no auto-discovery, no published config, no Laravel-version constraint matrix, and no documentation beyond the repository. Wiring means manually instantiating aggregates and mapping them to/from your Eloquent models and HTTP resources. The real feasibility question is not "can we call it" but "does the entity schema match our domain" — legal entity modelling diverges sharply by jurisdiction (Companies House vs. Handelsregister vs. EIN), and a generic aggregate of this vintage is unlikely to cover identifier normalisation, beneficial-ownership structures, or address formatting.

Technical risk. This is the dominant concern. Zero stars, zero dependents, and a zero quality score mean there is no external evidence of production use — no issue tracker signal, no downstream compatibility testing, no security advisory history. The Amethyst family has seen little activity for several years, so transitive dependencies are likely pinned to EOL PHP branches and old PSR versions, which will surface as composer why-not conflicts on Laravel 10/11 and PHP 8.2+. Bus factor is effectively one maintainer; the MIT licence protects you legally but offers no continuity. The package is small enough to audit and vendor, which materially reduces the risk — but only if you accept ownership of it.

Key questions for the maintainer/owner.

  • What are the declared PHP and dependency constraints, and does it install cleanly against our target Laravel/PHP matrix?
  • What is the entity schema — which identifiers, address shapes, and legal-form enumerations are modelled, and are they extensible?
  • Is there test coverage, and does CI run on current PHP versions?
  • Does it transitively pull amethyst/core or other packages that are themselves unmaintained?
  • Does the domain require PII handling, retention, or auditability that this model does not express?
  • Are we prepared to fork, vendor, and own this code permanently?

Integration Approach

Stack fit. Treat it as a library of value objects, not as infrastructure. It slots into the domain layer of a Laravel app alongside — never inside — Eloquent. The correct posture is adapter-first: define your own LegalEntity interface and repository contract in application code, implement it with this package behind a thin mapping class, and keep Amethyst types out of controllers, jobs, and API resources. That single decision converts an unmaintained dependency into a swappable implementation detail.

Migration path. There is no migration from an incumbent — this is net-new surface. The realistic path is: (1) sandbox spike, install in isolation and confirm it resolves against the target PHP/Laravel versions; (2) schema gap analysis against your actual jurisdiction requirements; (3) adapter layer plus fixture-based contract tests; (4) one narrow production path (e.g. company ingestion from a single registry) before any broadening. If step 1 fails on dependency resolution, stop — do not patch a zero-adoption package to make it install.

Compatibility. Verify composer why-not against your locked dependency set before committing. Check the package's PHP constraint, its PSR/league/* transitive versions, and whether any transitive Amethyst package is abandoned on Packagist. Because nothing else in the ecosystem depends on this package, you will be the only party exercising these constraints — incompatibilities will not be caught upstream.

Sequencing. Do not sequence this alongside a Laravel major upgrade or a PHP runtime bump. Land it in a low-blast-radius service first, behind a feature flag, with the adapter boundary in place from day one. Budget an explicit "adopt or fork" decision gate after the spike: if the schema gaps exceed the adapter cost, forking into an internal domain/legal-entity namespace is the better outcome and costs roughly the same effort.

Operational Impact

Maintenance. Assume you own it. A zero-dependent, zero-star package receives no upstream bug reports, so defects surface only in your production traffic. Plan for vendoring or a hard fork within twelve months, and record that intent in the architecture decision record rather than discovering it during a PHP upgrade.

Support. No vendor, no SLA, no community forum, no Stack Overflow corpus. Internal ownership must be named — a specific team accountable for the fork, its tests, and its dependency pins. Without that, the package becomes orphaned code the moment the original adopter changes teams.

Scaling. Aggregates are plain PHP objects; per-record cost is negligible and serialisation overhead is linear. The concern is volume patterns: bulk ingestion of tens of thousands of registry records through an aggregate-plus-serializer pipeline will be measurably slower than hydrating into arrays or using insert batches. Keep bulk paths on query-builder/Eloquent and reserve the aggregate for single-record domain operations.

Failure modes. Four to watch: (1) dependency-resolution deadlock on the next PHP or Laravel upgrade, blocking the whole application rather than one feature; (2) silent serialisation drift if the package's output shape is consumed by downstream contracts without pinned contract tests; (3) schema incompleteness masquerading as validation — fields the model does not express get dropped rather than rejected; (4) jurisdiction gaps in address and identifier handling that only appear in edge-case onboarding flows.

Ramp-up. Two distinct costs. Amethyst's aggregate/connector/serializer idiom is idiosyncratic and undocumented here — allow one to two days for a mid-level engineer to become productive, plus the adapter work. The larger cost is domain: legal-entity modelling requires input from compliance or onboarding stakeholders, not just engineering. Net assessment: adopt only inside an adapter boundary, with a named owner and a scheduled fork decision; otherwise build the small value objects in-house.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel