Function to turn register blockwise

I have a function to make clipboard register clockwise +

function()
  vim.cmd("call setreg('+', @+, 'b')")
  -- print('set + reg: blockwise!')
  pcall(require("notify")('set + reg: blockwise!'))
end

And I would like to use an optional argument and thus making the register optional, something like this:

function(register)
   register =  "+" or register
   vim.cmd("call setreg(register, @ .. register, 'b')")
   print('setreg ' .. register .. ' reg: blockwise!')
end

I have already tested the optional parameter and it works but the problem is how to mix lua string into vim.cm

It seems like I have aced!

M.blockwise_register = function(register)
  register = register or "+"
  print("Making " .. register .. " blockwise")
  -- vim.cmd("call setreg('+', @+, 'b')") -- native vim way to set clipboard blockwise
  vim.cmd("call setreg('".. register .. "', @" .. register ..", 'b')")
end

vim.api.nvim_create_user_command('BlockwiseZero', ':lua require("core.utils").blockwise_register("0")<CR>', { nargs = '?', bang = false})
vim.api.nvim_create_user_command('BlockwisePlus', ':lua require("core.utils").blockwise_register("+")<CR>', { nargs = '?', bang = false})
vim.api.nvim_create_user_command('BlockwisePrimary', ':lua require("core.utils").blockwise_register("*")<CR>', { nargs = '?', bang = false})
vim.cmd([[cnoreab Bz BlockwiseZero]])
vim.cmd([[cnoreab B+ BlockwisePlus]])
vim.cmd([[cnoreab B* BlockwisePrimary]])