diff --git a/web/modules/custom/example/src/Builder/PostBuilder.php b/web/modules/custom/example/src/Builder/PostBuilder.php
new file mode 100644
index 0000000..88508d9
--- /dev/null
+++ b/web/modules/custom/example/src/Builder/PostBuilder.php
@@ -0,0 +1,43 @@
+<?php
+
+namespace Drupal\example\Builder;
+
+use Drupal\Core\Datetime\DrupalDateTime;
+use Drupal\node\Entity\Node;
+use Drupal\node\NodeInterface;
+
+final class PostBuilder {
+
+  private ?DrupalDateTime $created;
+
+  private string $title;
+
+  public static function create(): self {
+    return new self();
+  }
+
+  public function setCreatedDate(string $time = 'now') {
+    $this->created = new DrupalDateTime($time);
+
+    return $this;
+  }
+
+  public function setTitle(string $title) {
+    $this->title = $title;
+
+    return $this;
+  }
+
+  public function getPost(): NodeInterface {
+    $post = Node::create([
+      'created' => $this?->created->getTimestamp(),
+      'title' => $this->title,
+      'type' => 'post',
+    ]);
+
+    $post->save();
+
+    return $post;
+  }
+
+}
diff --git a/web/modules/custom/example/tests/src/Kernel/PostNodeRepositoryTest.php b/web/modules/custom/example/tests/src/Kernel/PostNodeRepositoryTest.php
index 9683002..8382973 100644
--- a/web/modules/custom/example/tests/src/Kernel/PostNodeRepositoryTest.php
+++ b/web/modules/custom/example/tests/src/Kernel/PostNodeRepositoryTest.php
@@ -2,37 +2,31 @@
 
 namespace Drupal\Tests\example\Kernel;
 
-use Drupal\Core\Datetime\DrupalDateTime;
+use Drupal\example\Builder\PostBuilder;
 use Drupal\example\Repository\PostNodeRepository;
 use Drupal\KernelTests\Core\Entity\EntityKernelTestBase;
 use Drupal\node\NodeInterface;
-use Drupal\Tests\node\Traits\NodeCreationTrait;
 
 class PostNodeRepositoryTest extends EntityKernelTestBase {
 
-  use NodeCreationTrait;
-
   protected static $modules = ['node', 'example'];
 
   public function testPostsAreReturnedByCreatedDate(): void {
     // Arrange.
-    $this->createNode([
-      'title' => 'Post one',
-      'created' => (new DrupalDateTime('-1 week'))->getTimestamp(),
-      'type' => 'post',
-    ]);
+    PostBuilder::create()
+      ->setCreatedDate('-1 week')
+      ->setTitle('Post one')
+      ->getPost();
 
-    $this->createNode([
-      'title' => 'Post two',
-      'created' => (new DrupalDateTime('-8 days'))->getTimestamp(),
-      'type' => 'post',
-    ]);
+    PostBuilder::create()
+      ->setCreatedDate('-8 days')
+      ->setTitle('Post two')
+      ->getPost();
 
-    $this->createNode([
-      'title' => 'Post three',
-      'created' => (new DrupalDateTime('yesterday'))->getTimestamp(),
-      'type' => 'post',
-    ]);
+    PostBuilder::create()
+      ->setCreatedDate('yesterday')
+      ->setTitle('Post three')
+      ->getPost();
 
     // Act.
     $postRepository = $this->container->get(PostNodeRepository::class);