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

Moderate Laravel Package

torann/moderate

Torann Moderate is a Laravel package that adds lightweight moderation to Eloquent models. Mark records as pending, approved, or rejected and filter moderated content with simple scopes, ideal for posts, comments, and other user-generated content.

View on GitHub
Deep Wiki
Context7

A simple moderation system for Laravel.

Frequently asked questions about Moderate
How do I install torann/moderate in a Laravel application?
Install with composer require torann/moderate, then publish the package config and migration with vendor:publish so the moderation columns can be added to your tables. Run the migration, add the provided trait to each content model, and backfill existing rows so they are not left in a null state. Because the package shows very little release activity, verify the install against your exact Laravel and PHP versions before assuming the happy path.
Which Laravel versions does torann/moderate support?
The README does not state supported Laravel or PHP ranges, and packages of this vintage often pin older Laravel constraints. Check composer.json directly and confirm it matches both your current runtime and your next planned upgrade. Budget the work as a compatibility probe first and a feature evaluation second, and write an exit criterion before opening a terminal.
How does torann/moderate store moderation state?
Moderation state lives as a column on the row itself, added by the package migration, and the trait exposes that state on your Eloquent model. There is no external service, no queue to operate, and no third-party vendor in the critical path. This makes it the cheapest option to reason about and operate, but it also stops at persistence rather than full moderation workflow.
How do I filter approved, pending, or rejected records with torann/moderate?
The package ships query scopes so you can filter moderated content by state on your public read paths. Confirm the exact scope semantics before shipping, because names like moderated can mean either pending or already acted upon, and that ambiguity produces wrong-by-default visibility in production. Also test that the scopes compose cleanly with your existing global scopes such as soft deletes and tenant partitioning.
Is torann/moderate actively maintained?
Public signals point the other way: zero stars, zero listed dependents, a low score, and a single visible release note that is a license tweak. Treat it as unmaintained and plan accordingly, including pinning or vendoring the source. The upside is that the codebase is small enough for one engineer to read end to end, so mandate that review before adopting it.
Does torann/moderate include an audit trail of who moderated content and when?
No, audit history is not in the box; the package records state but not who approved or rejected a record, when, or why. That is usually the first post-launch moderation request and is regulatory table stakes for marketplaces and anything touching minors or financial harm. Plan your own audit logging or an event-based history table alongside the package.
Can torann/moderate moderate multiple Eloquent models at once?
It is a trait-based add-on, so you add it to each model that needs moderation. Whether the shipped migration uses a polymorphic design or duplicated columns per table is something you should verify in the source; in practice most implementations of this shape duplicate columns per table. For several content types, plan the column additions and any backfill per table.
What are the risks of adding the moderation column to a large existing table?
The shipped migration may be a nullable add, a defaulted add, or a rebuild with a write lock, and that difference matters on a large table. A nullable status left null on existing rows excludes them from any approved scope, which users experience as lost content. Inspect the migration, run it against a production-sized copy, and backfill existing rows as part of the rollout.
How should I handle authorization for approving content with torann/moderate?
The package provides no authorization boundary, so an unguarded approve method is one controller away from letting any authenticated user publish content. Wrap moderation actions in Gates or Policies and route approvals through your own service or controller layer. Check whether the package exposes events or hooks so authorization and notifications are not bolted on afterward.
Is torann/moderate a good alternative to a full moderation platform?
It is best framed as a visibility switch, not content moderation as a whole. Reviewer assignment, queues, SLA timers, appeals, reporter-side flagging, notification fan-out, and audit history are all out of scope and remain roadmap items regardless of this decision. On a current Laravel release, honestly compare one day to fork and patch against one day to reimplement the small trait and scopes yourself.
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.
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle