+ return $book;
+ }
+
+ /**
+ * Create a new book in the system
+ */
+ public function create(array $input): Book
+ {
+ $book = new Book();
+ $this->baseRepo->create($book, $input);
+ return $book;
+ }
+
+ /**
+ * Update the given book.
+ */
+ public function update(Book $book, array $input): Book
+ {
+ $this->baseRepo->update($book, $input);
+ return $book;
+ }
+
+ /**
+ * Update the given book's cover image, or clear it.
+ * @throws ImageUploadException
+ * @throws Exception
+ */
+ public function updateCoverImage(Book $book, ?UploadedFile $coverImage, bool $removeImage = false)
+ {
+ $this->baseRepo->updateCoverImage($book, $coverImage, $removeImage);