PHPackages                             dhruvilnagar/laravel-action-engine - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. dhruvilnagar/laravel-action-engine

ActiveLibrary[Database &amp; ORM](/categories/database)

dhruvilnagar/laravel-action-engine
==================================

A powerful Laravel package for managing bulk operations with queue support, progress tracking, undo functionality, scheduled execution, and comprehensive audit trails.

v1.0.1(3mo ago)04MITPHPPHP ^8.1|^8.2|^8.3CI failing

Since Jan 19Pushed 3mo agoCompare

[ Source](https://github.com/DhruvilNagar/laravel-action-engine)[ Packagist](https://packagist.org/packages/dhruvilnagar/laravel-action-engine)[ Docs](https://github.com/dhruvilnagar/laravel-action-engine)[ RSS](/packages/dhruvilnagar-laravel-action-engine/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (14)Versions (3)Used By (0)

Laravel Action Engine
=====================

[](#laravel-action-engine)

A powerful, framework-agnostic Laravel package for managing bulk operations with queue support, progress tracking, undo functionality, and scheduled execution.

[![Latest Version on Packagist](https://camo.githubusercontent.com/9d04cf924fd06092f10ffee0aa73448851acfb1f53420c051ec24ac3f132f790/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6468727576696c6e616761722f6c61726176656c2d616374696f6e2d656e67696e652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/dhruvilnagar/laravel-action-engine)[![Total Downloads](https://camo.githubusercontent.com/adc3befd33fa43459423d1ac06e177307d11870ae3c1cbbff26ffb5dfee2e6ac/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6468727576696c6e616761722f6c61726176656c2d616374696f6e2d656e67696e652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/dhruvilnagar/laravel-action-engine)[![License](https://camo.githubusercontent.com/198d598d592d7dafb2c6a5b7aadbcd115914882acde937db278796f428e49a6f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f4468727576696c4e616761722f6c61726176656c2d616374696f6e2d656e67696e652e7376673f7374796c653d666c61742d737175617265)](https://github.com/DhruvilNagar/laravel-action-engine/blob/main/LICENSE)

✨ Features
----------

[](#-features)

- **🚀 Fluent API** - Simple, readable syntax with method chaining
- **📦 Queue Integration** - Automatic batching for large datasets with configurable batch sizes
- **📊 Progress Tracking** - Real-time progress updates via polling or WebSocket
- **↩️ Undo Functionality** - Time-limited undo with full record snapshots
- **📅 Scheduled Actions** - Defer execution to a specific time
- **👁️ Dry Run Mode** - Preview what will happen without executing
- **🔗 Action Chaining** - Execute multiple actions sequentially
- **📝 Audit Trail** - Complete history of all bulk actions
- **⚡ Rate Limiting** - Prevent system overload
- **📤 Export Integration** - Export results to CSV/Excel/PDF
- **🔐 Authorization** - Policy-based authorization support
- **🎨 Multiple Frontend Integrations** - Livewire, Vue, React, Blade, Filament, Alpine.js

📋 Requirements
--------------

[](#-requirements)

- PHP 8.1 or higher
- Laravel 10.x or 11.x

📦 Installation
--------------

[](#-installation)

Install via Composer:

```
composer require dhruvilnagar/laravel-action-engine
```

Run the interactive installer:

```
php artisan action-engine:install
```

The installer will ask you:

1. Which frontend stack(s) you're using (Livewire, Vue, React, Blade, Filament, Alpine.js)
2. Whether you need real-time progress updates via WebSocket
3. If yes, which broadcast driver you're using

🚀 Quick Start
-------------

[](#-quick-start)

### Basic Usage

[](#basic-usage)

```
use DhruvilNagar\ActionEngine\Facades\BulkAction;
use App\Models\User;

// Delete inactive users
$execution = BulkAction::on(User::class)
    ->action('delete')
    ->where('status', 'inactive')
    ->where('last_login_at', ' 'active']);
User::bulkArchive([1, 2, 3], 'Cleanup');
User::getBulkActionHistory();
User::getUndoableBulkActions();
```

📡 Real-time Progress (WebSocket)
--------------------------------

[](#-real-time-progress-websocket)

Enable broadcasting in config:

```
'broadcasting' => [
    'enabled' => true,
    'channel_prefix' => 'bulk-action',
],
```

Listen to events in JavaScript:

```
Echo.private(`bulk-action.${executionUuid}`)
    .listen('.progress', (data) => {
        console.log(`Progress: ${data.progress_percentage}%`)
    })
    .listen('.completed', (data) => {
        console.log('Action completed!')
    })
    .listen('.failed', (data) => {
        console.log('Action failed:', data.error)
    })
```

🛠️ Console Commands
-------------------

[](#️-console-commands)

```
# Run the installer
php artisan action-engine:install

# List registered actions
php artisan action-engine:list

# Process scheduled actions
php artisan action-engine:process-scheduled

# Cleanup expired data
php artisan action-engine:cleanup
```

🧪 Testing
---------

[](#-testing)

```
composer test
```

📄 License
---------

[](#-license)

The MIT License (MIT). Please see [License File](LICENSE) for more information.

🤝 Contributing
--------------

[](#-contributing)

Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance81

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~9 days

Total

2

Last Release

103d ago

PHP version history (2 changes)v1.0.0PHP ^8.1

v1.0.1PHP ^8.1|^8.2|^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/dc84adce2e565599e1b0ed6344cbb6b815390955c7af6c9441f4ae1ad139536b?d=identicon)[dhruvilnagar](/maintainers/dhruvilnagar)

---

Top Contributors

[![DhruvilNagar](https://avatars.githubusercontent.com/u/39429260?v=4)](https://github.com/DhruvilNagar "DhruvilNagar (9 commits)")

---

Tags

audit-trailbatch-processingbladebulk-actionbulk-operationscomposer-packageeloquentevent-drivenfilamentlaravellaravel-packagelivewirephpprogress-trackingqueuerate-limitingreactundo-redovuelaraveldatabaseeloquentlaravel-packagequeuelivewirereactfilamentaudit-trailvuebatch processingbulk actionsbulk-operationsprogress-trackingundo-redoscheduled-actions

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/dhruvilnagar-laravel-action-engine/health.svg)

```
[![Health](https://phpackages.com/badges/dhruvilnagar-laravel-action-engine/health.svg)](https://phpackages.com/packages/dhruvilnagar-laravel-action-engine)
```

###  Alternatives

[roots/acorn

Framework for Roots WordPress projects built with Laravel components.

9682.1M97](/packages/roots-acorn)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k12.1M99](/packages/laravel-pulse)[mongodb/laravel-mongodb

A MongoDB based Eloquent model and Query builder for Laravel

7.1k7.2M71](/packages/mongodb-laravel-mongodb)[watson/validating

Eloquent model validating trait.

9723.3M47](/packages/watson-validating)[dyrynda/laravel-model-uuid

This package allows you to easily work with UUIDs in your Laravel models.

4802.8M8](/packages/dyrynda-laravel-model-uuid)[pdphilip/elasticsearch

An Elasticsearch implementation of Laravel's Eloquent ORM

145360.2k4](/packages/pdphilip-elasticsearch)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
