// Larawell — clean, purposeful code
namespace App\Actions;
use App\Models\Project;
use App\Notifications\ProjectPublished;
use Illuminate\Support\Facades\DB;
final class PublishProject
{
public function handle(
Project $project,
): Project
{
return DB::transaction(function () use ($project) {
$project->publish();
$project->owner->notify(
new ProjectPublished($project),
);
return $project;
});
}
}