How to make diagnostic+float work well with vim-repeat?

This works when ]d is pressed followed by a . (dot) with tpope’s vim-repeat:

vim.keymap.set("n", "]d", function()
  vim.diagnostic.goto_next({ float = false })
  vim.call('repeat#set', ']d')
end, {buffer=0})

but this doesn’t :

vim.keymap.set("n", "]d", function()
  vim.diagnostic.goto_next()
  vim.call('repeat#set', ']d')
end, {buffer=0})