Can every problem in Theory of Computation be stated as undecidable, by writing a reduction from Halting Problem? Let us consider the problem that
Whether a given Turing Machine M, has at least 481 states.
Since the number of states of M can be read off from the encoding of M. We can build a Turing machine that, given the encoding of M written on its input tape, counts the number of states of M and accepts or rejects depending on whether the number is at least 481.
(Source : Discussion in Automata and Computability by Dexter Kozen)
But, let us forget this for some time, and try to write reduction from a Halting problem.
HP # x -> Halting problem instance
We are constructing a machine 'R'
Input to R:  A machine description M
What 'R' does::
First runs HP on x, if halts, then check whether M has 481 states, if yes accept, else reject.
L(R) = {
                 Set of all descriptions M, which has at least 481 states  ::::  If HP halts on x
                 Phi  ::: If HP doesn't halt on x
       }

Doesn't this hold as a reduction from Halting Problem to the problem mentioned above?
Or I am doing some wrong in the process of the reduction?
Thanks in advance!!

Just because a problem can be reduced from the halting problem does not make the original problem undecideable. A problem is decideable if there exists an algorithm that solves the problem. That means that a problem is undecideable if there does not exist any algorithm that solves it. In other words, a problem is undecideable if, for every algorithm, it is true that the algorithm does not solve the problem.
The existence of some algorithm that does not solve the problem in no way shows that the problem is undecideable.
