Example of Database Transactions in pixelfed/pixelfed

File app/Jobs/DeletePipeline/DeleteRemoteProfilePipeline.php (link to Github)
class DeleteRemoteProfilePipeline implements ShouldQueue
{
	//
	public function handle()
	{
		$profile = $this->profile;

		if($profile->domain == null || $profile->private_key) {
			return;
		}

		DB::transaction(function() use ($profile) {
			$profile->avatar->forceDelete();

			$id = $profile->id;

			MediaTag::whereProfileId($id)->delete();
			StatusHashtag::whereProfileId($id)->delete();
			DirectMessage::whereFromId($id)->delete();
			FollowRequest::whereFollowingId($id)
				->orWhere('follower_id', $id)
				->forceDelete();
			Follower::whereProfileId($id)
				->orWhere('following_id', $id)
				->forceDelete();
			Like::whereProfileId($id)->forceDelete();
		});

		DB::transaction(function() use ($profile) {
			$pid = $profile->id;
			StoryView::whereProfileId($pid)->delete();
			$stories = Story::whereProfileId($pid)->get();
			foreach($stories as $story) {
				$path = storage_path('app/'.$story->path);
				if(is_file($path)) {
					unlink($path);
				}
				$story->forceDelete();
			}
		});

		DB::transaction(function() use ($profile) {
			$medias = Media::whereProfileId($profile->id)->get();
			foreach($medias as $media) {
				$path = storage_path('app/'.$media->media_path);
				$thumb = storage_path('app/'.$media->thumbnail_path);
				if(is_file($path)) {
					unlink($path);
				}
				if(is_file($thumb)) {
					unlink($thumb);
				}
				$media->forceDelete();
			}
		});
		//
	}
}