Task: Fix `UnitaryGate.repeat()` method (Qiskit/qiskit#12986)

org: Qiskit
repo: qiskit
pr_number: 12986
issue_title: Fix `UnitaryGate.repeat()` method
issue_body: ### Summary\r\nCloses #11990 : error when calling the `UnitaryGate.repeat()` method (inherited from the `Gate` class).\r\n\r\n### Details and comments\r\nThe method `repeat()` internally calls the private method `_return_repeat()` which is inherited from the `Gate` class.\r\nIt creates a new `Gate` object with arguments `params=self.params`, which is expected to be of type `ParameterExpression` or `float`. However the parameters are of type `numpy.ndarray` for a `UnitaryGate`. \r\nA simple fix is to omit these parameters (`params=[]`) as they are not directly used by the returned `Gate`. Actually these parameters are still stored in the `repeat()` method and used only there.\r\n
resolved_issues: number: 11990
title: Invalid param type <class 'numpy.ndarray'> for gate unitary*1
body: ### Environment\n\n- **Qiskit version**: 1.0.2\r\n- **Python version**: 3.11.8\r\n- **Operating system**: Ubuntu 22.04.3 LTS\n\n### What is happening?\n\nRunning the below code triggered a qiskit.circuit.exceptions.CircuitError: "Invalid param type <class 'numpy.ndarray'> for gate unitary*1." I found this bug happens for some other Gates as well. Below is a minimal reproduction example using CUGate.\n\n### How can we reproduce the issue?\n\n```\r\nfrom qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister\r\nfrom qiskit.circuit.library.standard_gates import CUGate\r\n\r\nqr = QuantumRegister(2, name='qr')\r\ncr = ClassicalRegister(2, name='cr')\r\nqc = QuantumCircuit(qr, cr, name='qc')\r\n\r\nqc.append(CUGate(0, 0, 0, 0).power(1).repeat(1), qargs=qr)\r\n```\n\n### What should happen?\n\n```\r\nTraceback (most recent call last):\r\n  File "/mnt/tests/reproduction/reproduce_invalid_param_type.py", line 8, in <module>\r\n    qc.append(CUGate(0, 0, 0, 0).power(1).repeat(1), qargs=qr)\r\n              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n  File "/root/anaconda3/envs/qiskit1.0.2/lib/python3.11/site-packages/qiskit/circuit/instruction.py", line 591, in repeat\r\n    instruction = self._return_repeat(n)\r\n                  ^^^^^^^^^^^^^^^^^^^^^^\r\n  File "/root/anaconda3/envs/qiskit1.0.2/lib/python3.11/site-packages/qiskit/circuit/gate.py", line 87, in _return_repeat\r\n    return Gate(name=f"{self.name}*{exponent}", num_qubits=self.num_qubits, params=self.params)\r\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n  File "/root/anaconda3/envs/qiskit1.0.2/lib/python3.11/site-packages/qiskit/circuit/gate.py", line 46, in __init__\r\n    super().__init__(name, num_qubits, 0, params, label=label, duration=duration, unit=unit)\r\n  File "/root/anaconda3/envs/qiskit1.0.2/lib/python3.11/site-packages/qiskit/circuit/instruction.py", line 108, in __init__\r\n    self.params = params  # must be at last (other properties may be required for validation)\r\n    ^^^^^^^^^^^\r\n  File "/root/anaconda3/envs/qiskit1.0.2/lib/python3.11/site-packages/qiskit/circuit/instruction.py", line 287, in params\r\n    self._params.append(self.validate_parameter(single_param))\r\n                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r\n  File "/root/anaconda3/envs/qiskit1.0.2/lib/python3.11/site-packages/qiskit/circuit/gate.py", line 242, in validate_parameter\r\n    raise CircuitError(f"Invalid param type {type(parameter)} for gate {self.name}.")\r\nqiskit.circuit.exceptions.CircuitError: "Invalid param type <class 'numpy.ndarray'> for gate unitary*1."\r\n```\n\n### Any suggestions?\n\n_No response_

Reference solution:
fix_patch: diff --git a/qiskit/circuit/gate.py b/qiskit/circuit/gate.py\nindex 37fd19e2022a..2f1c09668252 100644\n--- a/qiskit/circuit/gate.py\n+++ b/qiskit/circuit/gate.py\n@@ -97,7 +97,10 @@ def __pow__(self, exponent: float) -> "Gate":\n         return self.power(exponent)\n \n     def _return_repeat(self, exponent: float) -> "Gate":\n-        return Gate(name=f"{self.name}*{exponent}", num_qubits=self.num_qubits, params=self.params)\n+        gate = Gate(name=f"{self.name}*{exponent}", num_qubits=self.num_qubits, params=[])\n+        gate.validate_parameter = self.validate_parameter\n+        gate.params = self.params\n+        return gate\n \n     def control(\n         self,\ndiff --git a/releasenotes/notes/fix_11990-8551c7250207fc76.yaml b/releasenotes/notes/fix_11990-8551c7250207fc76.yaml\nnew file mode 100644\nindex 000000000000..68912403cd39\n--- /dev/null\n+++ b/releasenotes/notes/fix_11990-8551c7250207fc76.yaml\n@@ -0,0 +1,6 @@\n+---\n+fixes:\n+  - |\n+    Fixes an error when calling the method :meth:`.UnitaryGate.repeat`. \n+    Refer to `#11990 <https://github.com/Qiskit/qiskit/issues/11990>`_ for more\n+    details.\n\\ No newline at end of file\n