for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace MichaelRubel\EnhancedPipeline\Traits;
use Illuminate\Support\Facades\DB;
trait HandlesDatabaseTransactions
{
/**
* Determines whether class uses transaction.
*
* @var bool
*/
protected bool $useTransaction = false;
* Enable transaction in pipeline.
* @return static
public function withTransaction(): static
$this->useTransaction = true;
return $this;
}
* Begin the transaction if enabled.
* @return void
protected function beginTransaction(): void
if (! $this->useTransaction) {
return;
DB::beginTransaction();
* Commit the transaction if enabled.
protected function commitTransaction(): void
DB::commit();
* Rollback the transaction if enabled.
protected function rollbackTransaction(): void
DB::rollBack();